Merge branch 'hyk.resolve_cmake_conflict' into 'develop'

Hyk.resolve cmake conflict

See merge request szabi_public/q-e!4
This commit is contained in:
Szabolcs Goger 2020-11-23 14:14:06 +00:00
commit 1473ebbfcf
71 changed files with 1075 additions and 3229 deletions

View File

@ -85,6 +85,8 @@ option(QE_ENABLE_CUDA
"enable CUDA acceleration on NVIDIA GPUs" OFF)
option(QE_ENABLE_DOC
"enable documentation building" OFF)
set(QE_FFTW_VENDOR "AUTO" CACHE
STRING "select a specific FFTW library [Intel_DFTI, Intel_FFTW3, ArmPL, IBMESSL, FFTW3, Internal]")
# TODO change all ifdefs throughout code base to match
# cmake options
@ -238,7 +240,7 @@ if(NOT QE_LAPACK_INTERNAL)
target_link_libraries(qe_lapack INTERFACE ${_lapack_libs})
else()
message(FATAL_ERROR "Failed to find a complete set of external BLAS/LAPACK library by FindLAPACK. "
"Varaibles controlling FindLAPACK can be found at CMake online documentation. "
"Variables controlling FindLAPACK can be found at CMake online documentation. "
"Alternatively, '-DQE_LAPACK_INTERNAL=ON' may be used to enable reference LAPACK "
"at a performance loss compared to optimized libraries.")
endif()
@ -612,4 +614,4 @@ add_custom_target(epw
DEPENDS
qe_epw_exe
COMMENT
"electron-Phonon Coupling with wannier functions")
"electron-Phonon Coupling with wannier functions")

View File

@ -1,35 +1,25 @@
# How to contribute
You can contribute to this project in by:
You can contribute to this project, even as an ordinary user, by:
* [implementing new features or improving existing ones;](#development)
* [subscribing and partecipating to the users mailing list;](https://lists.quantum-espresso.org/mailman/listinfo/users)
* [reporting bugs and proposing changes in the Issue section of the gitlab repository;](https://gitlab.com/QEF/q-e/blob/develop/CONTRIBUTING.md#creating-issues)
* [preparing new tests for the test suite](https://gitlab.com/QEF/q-e/wikis/Quantum-Espresso-test-suite)
1. subscribing and partecipating to the [users' mailing list](https://lists.quantum-espresso.org/mailman/listinfo/users), answering other people's questions
and doubts;
## Development
If you want to contribute serious and non-trivial stuff ( or even simple and trivial stuff ) you have to *fork* this repository; keep it updated;
when your contribution is ready, submit a merge request to the development branch of this repository.
After some basic tests ran by gitlab CI and after approval, your changes will be merged into the development branch.
2. suggesting improvements and reporting bugs, either to the [developers mailing list](https://lists.quantum-espresso.org/mailman/listinfo/users),
or using the [Issue section](https://gitlab.com/QEF/q-e/issues) of the gitlab repository.
A basic guide on how to work with `git` can be found [here](https://docs.gitlab.com/ce/gitlab-basics/README.html). A more thorough introduction to `git` is provided by [proGit](https://git-scm.com/book/en/v2) online e-book.
Information on the mailing lists and on how to report bugs can be found in the
[Quantum ESPRESSO web site](https://www.quantum-espresso.org), "Contacts" section.
You can contribute even more by:
3. preparing new tests for the test suite: see the
[Wiki page](https://gitlab.com/QEF/q-e/wikis/Test-suite-and-test-farm);
#### Suggested workflow
4. improving the documentation;
- register on [gitlab](https://gitlab.com/users/sign_in);
- [fork the QEF/q-e project](https://docs.gitlab.com/ce/gitlab-basics/fork-project.html);
- [create a local copy of __your__ repository on your workstation(s)](https://docs.gitlab.com/ce/gitlab-basics/command-line-commands.html#clone-your-project);
- [once your contribution is ready push it into __your__ repository](https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html#send-changes-to-gitlab-com);
- [create a merge request to the `develop` branch of QEF/q-e](https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html#how-to-create-a-merge-request)
- for more details and suggestions you can have a look to the wiki pages
5. porting to new/unsupported architectures or configurations;
6. implementing new features, or improving existing ones.
## Development tools
[Here](dev-tools/) you can find several tools that will assist you while contributing to the QE source code.
## Creating Issues
You can report bugs and propose new developments by posting an [issue]( https://gitlab.com/QEF/q-e/issues) in the Issue section of this repository.
Partecipation to the issue discussions are also a welcome contribution.
When reporting bugs, please allow to reproduce the problem by providing input and output files.
For more information, consult the documentation for developers in the
[Wiki](https://gitlab.com/QEF/q-e/wikis/home)

View File

@ -6,7 +6,7 @@ set(sources
qe_add_library(qe_couple ${sources})
add_library(QE::COUPLE ALIAS qe_couple)
target_link_libraries(qe_couple
PUBLIC
PRIVATE
QE::Modules
QE::LAX
QE::FFTX

View File

@ -127,7 +127,8 @@ target_link_libraries(qe_cpv_exe
PRIVATE
QE::Modules
QE::LAX
QE::CPV)
QE::CPV
QE::UTILX)
###########################################################
# manycp.x
@ -151,7 +152,9 @@ set_target_properties(qe_cpv_cppp_exe PROPERTIES OUTPUT_NAME cppp.x)
target_link_libraries(qe_cpv_cppp_exe
PRIVATE
QE::Modules
QE::CPV)
QE::CPV
QE::CLIB
QE::UTILX)
###########################################################
# wfdd.x
@ -174,5 +177,4 @@ qe_install_targets(
qe_cpv_exe
qe_cpv_manycp_exe
qe_cpv_cppp_exe
qe_cpv_wfdd_exe
)
qe_cpv_wfdd_exe)

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html

Binary file not shown.

View File

@ -1,7 +1,7 @@
LATEX = pdflatex
LATEX2HTML = latex2html
PDFS = constraints_HOWTO.pdf developer_man.pdf user_guide.pdf plumed_quick_ref.pdf brillouin_zones.pdf
PDFS = constraints_HOWTO.pdf user_guide.pdf brillouin_zones.pdf
AUXS = $(PDFS:.pdf=.aux)
LOGS = $(PDFS:.pdf=.log)
OUTS = $(PDFS:.pdf=.out)
@ -9,7 +9,7 @@ TOCS = $(PDFS:.pdf=.toc)
all: pdf html
pdf: $(PDFS)
html: user_guide developer_man
html: user_guide
$(PDFS): %.pdf: %.tex
$(LATEX) $<
@ -17,33 +17,9 @@ $(PDFS): %.pdf: %.tex
clean:
- rm -f $(PDFS) $(AUXS) $(LOGS) $(OUTS) $(TOCS) *~
- rm -rf user_guide/ developer_man/
- rm -rf user_guide/
- rm -f INPUT_*.html INPUT_*.txt INPUT_*.xml qe-input-ref.html
developer_man: developer_man.pdf
- rm -rf developer_man/
- latex2html \
-t "Developer's Manual for Quantum-ESPRESSO" \
-html_version 3.2,math \
-toc_depth 3 -split 3 -toc_stars -show_section_numbers \
-local_icons -image_type png \
developer_man.tex
if test -d developer_man; then \
cd developer_man; \
for file in *.html; do \
cp $$file /tmp/$$file; \
cat /tmp/$$file | sed 's/HREF="http/NAME="http/g' | sed 's/mathend000#//g' - > $$file; \
rm -f /tmp/$$file; \
done; \
fi
@if test -d developer_man; then \
echo ""; \
echo "***"; \
echo "*** Developer's Manual created in developers_manual/developers_manual.html"; \
echo "***"; \
echo ""; \
fi
user_guide: user_guide.pdf
- rm -rf user_guide/
- latex2html \

View File

@ -7,10 +7,7 @@ The following files are always present in the repository:
release-notes What is new in the current release + list of fixed bugs
(only those that were present in some official release)
user-guide.tex User guide
developer-man.tex Developers' manual
brillouin_zone.tex Pictures of the labels defined inside the Brillouin zones.
plumed_quick_ref.tex
An introduction to the usage of PLUMED with QE
constraints_HOWTO.tex
Documentation for constraints
ChangeLog.old ChangeLog for the Quantum-ESPRESSO suite after aug. 2004
@ -21,8 +18,6 @@ ChangeLog.cp ChangeLog before aug 2004 for CP
Printable versions of the *tex files are present in the released version:
user-guide.pdf
developer-man.pdf
plumed_quick_ref.pdf
brillouin_zone.pdf
All the material included in this distribution is free software;

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@ Fixed in 6.7 version:
Incompatible changes in 6.7 version:
* FoX no longer used to read and write pseudopotential files
* iotk no longer used to read and write any file
* Developer manual moved to the Wiki
New in v.6.6:
* vdW-DF3-opt1, vdW-DF3-opt2, and vdW-DF-C6 van der Waals functionals

View File

@ -1,5 +1,5 @@
\documentclass[12pt,a4paper]{article}
\def\version{6.6}
\def\version{6.7MaX}
\def\qe{{\sc Quantum ESPRESSO}}
\usepackage{html}
@ -108,8 +108,8 @@ or patch some \qe\ routines can be automatically installed using
\item \texttt{YAMBO}:
electronic excitations within Many-Body Perturbation Theory,
GW and Bethe-Salpeter equation.
\item \texttt{PLUMED} (v.1.3 only):
calculation of free-energy surface through metadynamics.
%\item \texttt{PLUMED} (v.1.3 only):
% calculation of free-energy surface through metadynamics.
\item \texttt{GIPAW} (Gauge-Independent Projector Augmented Waves):
NMR chemical shifts and EPR g-tensor.
%\item \texttt{WEST}: Many-body perturbation corrections for standard DFT.
@ -138,7 +138,7 @@ Further documentation, beyond what is provided in this guide, can be found in:
See section \ref{SubSec:Contacts}, ``Contacts'', for more info.
\end{itemize}
People who want to contribute to \qe\ should read the
Developer Manual: \texttt{Doc/developer\_man.pdf}.
Wiki pages on GItLab: \texttt{https://gitlab.com/QEF/q-e/-/wiki}.
This guide does not explain the basic Unix concepts (shell, execution
path, directories etc.) and utilities needed to run \qe; it does not
@ -163,8 +163,8 @@ is promoted by the \qe\ Foundation under the coordination of
Paolo Giannozzi (Univ. Udine and IOM-CNR, Italy) and Pietro Delugas
(SISSA Trieste) with a strong support from the MaX - Materials design
at the Exascale EU Centre of Excellence.
% of the CINECA National Supercomputing
% Center in Bologna under the responsibility of Carlo Cavazzoni.
The development of the GPU-enabled version is coordinated by Pietro Bonf\`a
(Univ. Parma).
Contributors to \qe, beyond the authors of the papers
mentioned in Sec.\ref{SubSec:Terms}, include:
@ -173,8 +173,6 @@ mentioned in Sec.\ref{SubSec:Terms}, include:
from Ye Luo (Argonne) and Sebastian Gs\"anger, for CMake support;
\item Ye Luo (Argonne) for improved FFT threading and miscellaneous
contributions and optimizations;
% \item Pietro Bonf\`a (CINECA) for multiple contributions to optimization,
% GPU version, and maintenance;
\item Fabio Affinito (CINECA) for ELPA support, for contributions
to the FFT library, and for various parallelization improvements;
\item Sebastiano Caravati for direct support of GTH pseudopotentials
@ -242,9 +240,6 @@ PLEASE NOTE: only messages that appear to come from the
registered user's e-mail address, in its {\em exact form}, will be
accepted. In case of trouble, carefully check that your return
e-mail is the correct one (i.e. the one you used to subscribe).
Please also note that since some time the correct functioning of mailing
list is frequently disrupted by policy changes at large commercial
providers. There is not much we can do about that.
If you need to contact the developers for {\em specific} questions
about coding, proposals, offers of help, etc., you may either post
@ -634,7 +629,7 @@ and you may want to use a CUDA-aware MPI distribution to optimize the data
transfer between the processes.
If you want to modify \configure\ (advanced users only!),
see the Developer Manual.
see the Wiki pages on GitLab.
\subsubsection{Manual configuration}
\label{SubSec:manconf}
@ -1269,6 +1264,14 @@ and MKL libraries should work, but "your mileage may vary", depending
upon the specific software stack you are using. Parallel compilation
with OpenMPI should also work.
If you get an error like
\begin{verbatim}
clang: error: no input files
make[1]: *** [laxlib.fh] Error 1
make: *** [libla] Error 1i
\end{verbatim}
redefine \texttt{CPP} as \texttt{CPP=gcc -E} in \texttt{make.inc}.
Gfortran information and binaries for Mac OS-X here:
\texttt{http://hpc.sourceforge.net/} and
\texttt{https://wiki.helsinki.fi/display/HUGG/GNU+compiler+install+on+Mac+OS+X}.

View File

@ -63,7 +63,9 @@ target_link_libraries(qe_epw
QE::PHonon::PH
QE::PW
QE::MPI_Fortran
)
QE::UTILX
QE::UPF
QE::FFTX)
###########################################################
# epw.x
@ -78,8 +80,7 @@ target_link_libraries(qe_epw_exe
QE::PW
QE::FFTX
QE::UTILX
QE::EPW
)
QE::EPW)
###########################################################
@ -87,5 +88,4 @@ qe_install_targets(
# Libraries
qe_epw
# Exacutables
qe_epw_exe
)
qe_epw_exe)

View File

@ -5,46 +5,124 @@ add_library(qe_fft INTERFACE)
add_library(QE::FFT ALIAS qe_fft)
qe_install_targets(qe_fft)
###########################################################
# Try to find a vendor FFTW
find_package(VendorFFTW)
if(VendorFFTW_FOUND)
if(VendorFFTW_ID STREQUAL "Intel")
SET(BLA_VENDOR_SAVED ${BLA_VENDOR})
if(QE_FFTW_VENDOR STREQUAL "AUTO")
# Try to find a FFTW library installed in the system
find_package(VendorFFTW)
if(VendorFFTW_FOUND)
if(VendorFFTW_ID STREQUAL "Intel")
qe_add_global_compile_definitions(__DFTI)
set(qe_fft_wrappers fft_scalar.DFTI.f90)
elseif(VendorFFTW_ID STREQUAL "Arm")
## ARMPL implements the same interface of the standard FFTW
## no need of QE ARMPL wrapper
#qe_add_global_compile_definitions(__ARM_LIB)
#set(qe_fft_wrappers fft_scalar.ARM_LIB.f90)
qe_add_global_compile_definitions(__FFTW3)
set(qe_fft_wrappers fft_scalar.FFTW3.f90)
elseif(VendorFFTW_ID STREQUAL "IBMESSL")
qe_add_global_compile_definitions(__LINUX_ESSL)
set(qe_fft_wrappers fft_scalar.ESSL.f90)
endif()
target_link_libraries(qe_fft INTERFACE VendorFFTW)
else()
# Try to find the official FFTW3
message(STATUS "No vendor FFTW found")
if(QE_ENABLE_OPENMP)
find_package(FFTW3 COMPONENTS DOUBLE_OPENMP DOUBLE)
else()
find_package(FFTW3 COMPONENTS DOUBLE)
endif()
if(FFTW3_FOUND)
qe_add_global_compile_definitions(__FFTW3)
set(qe_fft_wrappers fft_scalar.FFTW3.f90)
target_link_libraries(qe_fft INTERFACE FFTW3)
else()
message(STATUS "CMake variable FFTW3_ROOT may be used to hint the root directory of FFTW3 installation.")
# Cannot find anything useful, just point out internal FFTW fallback.
message(FATAL_ERROR "Failed to find an external FFTW library. "
"Alternatively, '-DQE_FFTW_VENDOR=Internal' may be used to enable reference FFTW "
"at a performance loss compared to optimized libraries.")
endif()
endif()
elseif(QE_FFTW_VENDOR MATCHES "Intel")
if(QE_FFTW_VENDOR STREQUAL "Intel_DFTI")
qe_add_global_compile_definitions(__DFTI)
set(qe_fft_wrappers fft_scalar.DFTI.f90)
elseif(VendorFFTW_ID STREQUAL "Arm")
## ARMPL implements the same interface of the standard FFTW
## no need of QE ARMPL wrapper
#qe_add_global_compile_definitions(__ARM_LIB)
#set(qe_fft_wrappers fft_scalar.ARM_LIB.f90)
qe_add_global_compile_definitions(__FFTW)
set(qe_fft_wrappers fft_scalar.FFTW.f90)
elseif(VendorFFTW_ID STREQUAL "IBMESSL")
elseif(QE_FFTW_VENDOR STREQUAL "Intel_FFTW3")
qe_add_global_compile_definitions(__FFTW3)
set(qe_fft_wrappers fft_scalar.FFTW3.f90)
else()
message(FATAL_ERROR "The unknown Intel FFTW library '${QE_FFTW_VENDOR}' is not supported!")
endif()
if(QE_ENABLE_OPENMP)
SET(BLA_VENDOR Intel10_64lp)
else()
SET(BLA_VENDOR Intel10_64lp_seq)
endif()
find_package(LAPACK QUIET)
find_package(VendorFFTW REQUIRED COMPONENTS MKL)
if(VendorFFTW_FOUND)
target_link_libraries(qe_fft INTERFACE VendorFFTW)
message(STATUS "Found ${QE_FFTW_VENDOR} library")
else()
message(FATAL_ERROR "Failed to find ${QE_FFTW_VENDOR} library. "
"Alternatively, remove -DQE_FFTW_VENDOR to automatic search a FFTW library in the system.")
endif()
elseif(QE_FFTW_VENDOR STREQUAL "ArmPL")
if(QE_ENABLE_OPENMP)
SET(BLA_VENDOR Arm_mp)
else()
SET(BLA_VENDOR Arm)
endif()
find_package(LAPACK QUIET)
find_package(VendorFFTW REQUIRED COMPONENTS ArmPL)
if(VendorFFTW_FOUND)
qe_add_global_compile_definitions(__FFTW3)
set(qe_fft_wrappers fft_scalar.FFTW3.f90)
target_link_libraries(qe_fft INTERFACE VendorFFTW)
message(STATUS "Found ${QE_FFTW_VENDOR} library")
else()
message(FATAL_ERROR "Failed to find ${QE_FFTW_VENDOR} library. "
"Alternatively, remove -DQE_FFTW_VENDOR to automatic search a FFTW library installed in the system.")
endif()
elseif(QE_FFTW_VENDOR STREQUAL "IBMESSL")
SET(BLA_VENDOR IBMESSL)
find_package(BLAS QUIET)
find_package(VendorFFTW REQUIRED COMPONENTS IBMESSL)
if(VendorFFTW_FOUND)
qe_add_global_compile_definitions(__LINUX_ESSL)
set(qe_fft_wrappers fft_scalar.ESSL.f90)
endif()
target_link_libraries(qe_fft INTERFACE VendorFFTW)
else()
# Try to find the official FFTW3
message(STATUS "No vendor FFTW found")
if(QE_ENABLE_OPENMP)
find_package(FFTW COMPONENTS DOUBLE_OPENMP)
target_link_libraries(qe_fft INTERFACE VendorFFTW)
message(STATUS "Found ${QE_FFTW_VENDOR} library")
else()
find_package(FFTW COMPONENTS DOUBLE)
message(FATAL_ERROR "Failed to find ${QE_FFTW_VENDOR} library. "
"Alternatively, remove -DQE_FFTW_VENDOR to automatic search a FFTW library installed in the system.")
endif()
if(FFTW_FOUND)
elseif(QE_FFTW_VENDOR STREQUAL "FFTW3")
if(QE_ENABLE_OPENMP)
find_package(FFTW3 REQUIRED COMPONENTS DOUBLE_OPENMP DOUBLE)
else()
find_package(FFTW3 REQUIRED COMPONENTS DOUBLE)
endif()
if(FFTW3_FOUND)
qe_add_global_compile_definitions(__FFTW3)
set(qe_fft_wrappers fft_scalar.FFTW3.f90)
target_link_libraries(qe_fft INTERFACE FFTW)
message(STATUS "Found FFTW3 library")
else()
# Cannot find anything useful, just fall back to the internal FFTW
message(STATUS "No FFTW3 library found. FFTW is falling back to QE internal implementation (FFTXLib)")
qe_add_global_compile_definitions(__FFTW)
set(qe_fft_wrappers fft_scalar.FFTW.f90)
message(FATAL_ERROR "Failed to find ${QE_FFTW_VENDOR} library. "
"Alternatively, remove -DQE_FFTW_VENDOR to automatic search a FFTW library installed in the system.")
endif()
elseif(QE_FFTW_VENDOR STREQUAL "Internal")
message(STATUS "QE internal implementation of FFTW (FFTXLib)")
qe_add_global_compile_definitions(__FFTW)
set(qe_fft_wrappers fft_scalar.FFTW.f90)
else()
message(FATAL_ERROR "The FFTW vendor library '${QE_FFTW_VENDOR}' is not supported!")
endif()
SET(BLA_VENDOR ${BLA_VENDOR_SAVED})
set(f_sources
fft_scatter.f90
@ -66,16 +144,14 @@ set(f_sources
fft_types.f90
tg_gather.f90
fft_helper_subroutines.f90
fft_param.f90
)
fft_param.f90)
if(QE_ENABLE_CUDA)
set(f_sources ${f_sources}
fft_scatter_gpu.f90
fft_scatter_2d_gpu.f90
fft_buffers.f90
fft_scalar.cuFFT.f90
)
fft_scalar.cuFFT.f90)
endif()
set(c_sources

View File

@ -31,8 +31,7 @@ set(sources_gww
gww/self_energy_storage.f90
gww/start_end.f90
gww/times_gw.f90
gww/vcprim.f90
)
gww/vcprim.f90)
set(sources_pw4gww
pw4gww/allocate_wannier.f90
@ -71,8 +70,7 @@ set(sources_pw4gww
pw4gww/wannier_bse.f90
pw4gww/hpsi_pw4gww.f90
pw4gww/cgsolve_all_gamma.f90
pw4gww/realus.f90
)
pw4gww/realus.f90)
set(sources_bse
bse/openfil_bse.f90
@ -107,8 +105,7 @@ set(sources_bse
bse/print_bse.f90
bse/contract_w_exc.f90
bse/qpe_exc.f90
bse/qpcorrections.f90
)
bse/qpcorrections.f90)
set(sources_head
head/bcast_ph_input.f90
@ -116,8 +113,7 @@ set(sources_head
head/lanczos_k.f90
head/openfilq.f90
head/phq_readin.f90
head/solve_head.f90
)
head/solve_head.f90)
set(sources_minpack
minpack/dpmpar.f90
@ -132,8 +128,7 @@ set(sources_minpack
minpack/lmdif.f90
minpack/lmpar.f90
minpack/mlegzo.f90
minpack/qrsolv.f90
)
minpack/qrsolv.f90)
set(sources_simple
simple/stop_pp.f90
@ -147,8 +142,7 @@ set(sources_simple
simple/gk_sort_limit.f90
simple/khamiltonian.f90
simple/init_us_2_max.f90
simple/commutator.f90
)
simple/commutator.f90)
set(sources_simple_bse
simple_bse/simple_object.f90
@ -161,8 +155,7 @@ set(sources_simple_bse
simple_bse/diago_exc_cg.f90
simple_bse/spectrum.f90
simple_bse/lanczos.f90
simple_bse/build_eemat.f90
)
simple_bse/build_eemat.f90)
set(sources_simple_ip
simple_ip/simple_ip_objects.f90
@ -171,8 +164,7 @@ set(sources_simple_ip
simple_ip/tetra_mod1.f90
simple_ip/interpolation.f90
simple_ip/diagonalization.f90
simple_ip/dielectric.f90
)
simple_ip/dielectric.f90)
qe_add_library(qe_gww ${sources_gww})
add_library(QE::GWW ALIAS qe_gww)
@ -190,7 +182,10 @@ target_link_libraries(qe_gww_pw4gww
QE::PW
QE::Modules
QE::GWW
)
QE::UTILX
QE::FFTX
QE::UPF
QE::LAX)
qe_add_library(qe_gww_bse ${sources_bse})
add_library(QE::GWW::bse ALIAS qe_gww_bse)
@ -200,7 +195,8 @@ target_link_libraries(qe_gww_bse
QE::Modules
QE::GWW
QE::GWW::pw4gww
)
QE::UTILX
QE::UPF)
qe_add_library(qe_gww_head ${sources_head})
add_library(QE::GWW::head ALIAS qe_gww_head)
@ -210,7 +206,9 @@ target_link_libraries(qe_gww_head
QE::LR_Modules
QE::Modules
QE::PHonon::PH
)
QE::UTILX
QE::UPF
QE::FFTX)
qe_add_library(qe_gww_minpack ${sources_minpack})
add_library(QE::GWW::minpack ALIAS qe_gww_minpack)
@ -224,7 +222,10 @@ target_link_libraries(qe_gww_simple
PRIVATE
QE::PW
QE::GWW
QE::Modules)
QE::Modules
QE::UPF
QE::UTILX
QE::FFTX)
qe_add_library(qe_gww_simplebse ${sources_simple_bse})
add_library(QE::GWW::simple_bse ALIAS qe_gww_simplebse)
@ -276,5 +277,4 @@ qe_install_targets(
# Executables
qe_gww_util_grap_exe
qe_gww_util_abcoefftoeps_exe
qe_gww_util_memorypw4gww_exe
)
qe_gww_util_memorypw4gww_exe)

View File

@ -41,8 +41,7 @@ set(sources
src/hp_stop_smoothly.f90
src/hp_write_chi.f90
src/hp_write_chi_full.f90
src/hp_write_dnsq.f90
)
src/hp_write_dnsq.f90)
qe_add_library(qe_hp ${sources})
add_library(QE::HP ALIAS qe_hp)
@ -50,7 +49,10 @@ target_link_libraries(qe_hp
PRIVATE
QE::PW
QE::LR_Modules
QE::Modules)
QE::Modules
QE::FFTX
QE::UTILX
QE::UPF)
###########################################################
# hp.x
@ -63,11 +65,11 @@ target_link_libraries(qe_hp_exe
QE::PW
QE::LAX
QE::Modules
QE::HP)
QE::HP
QE::UTILX)
###########################################################
qe_install_targets(
qe_hp
qe_hp_exe
)
qe_hp_exe)

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
doc: all

View File

@ -1,22 +1,18 @@
set(sources_davidson
Davidson_RCI/david_rci.f90
Davidson/cegterg.f90
Davidson/regterg.f90
)
Davidson/regterg.f90)
set(sources_davidson_rci
Davidson_RCI/david_rci.f90
)
Davidson_RCI/david_rci.f90)
set(sources_cg
CG/ccgdiagg.f90
CG/rcgdiagg.f90
)
CG/rcgdiagg.f90)
set(sources_ppcg
PPCG/ppcg_gamma.f90
PPCG/ppcg_k.f90
)
PPCG/ppcg_k.f90)
set(sources_paro
ParO/bpcg_gamma.f90
@ -26,15 +22,13 @@ set(sources_paro
ParO/paro_k.f90
ParO/pcg_k.f90
ParO/paro_gamma_new.f90
ParO/paro_k_new.f90
)
ParO/paro_k_new.f90)
set(sources_dense
DENSE/rotate_HSpsi_gamma.f90
DENSE/rotate_HSpsi_k.f90
DENSE/rotate_wfc_gamma.f90
DENSE/rotate_wfc_k.f90
)
DENSE/rotate_wfc_k.f90)
qe_add_library(qe_kssolver_davidson ${sources_davidson})
add_library(QE::KS_Solvers::Davidson ALIAS qe_kssolver_davidson)

View File

@ -62,7 +62,10 @@ add_library(QE::LR_Modules ALIAS qe_lr_modules)
target_link_libraries(qe_lr_modules
PRIVATE
QE::Modules
QE::PW)
QE::PW
QE::UPF
QE::UTILX
QE::FFTX)
###########################################################

View File

@ -342,7 +342,7 @@ tar-qe-modes :
# NOTICE about "make doc": in order to build the .html and .txt
# documentation in Doc, "tcl", "tcllib", "xsltproc" are needed;
# in order to build the .pdf files in Doc, "pdflatex" is needed;
# in order to build html files for user guide and developer manual,
# in order to build html files for the user guide,
# "latex2html" and "convert" (from Image-Magick) are needed.
doc :
if test -d Doc ; then \

View File

@ -139,12 +139,10 @@ set(sources
date_and_tim.f90
volume.f90
dylmr2.f90
ylmr2.f90
wgauss.f90
w0gauss.f90
w1gauss.f90
deviatoric.f90
)
deviatoric.f90)
qe_add_library(qe_modules ${sources})
add_library(QE::Modules ALIAS qe_modules)
@ -159,10 +157,8 @@ target_link_libraries(qe_modules
QE::libbeef
QE::MPI_Fortran
QE::MBD
PUBLIC
QE::FOX
QE::UTILX
)
QE::UTILX)
###########################################################

View File

@ -152,7 +152,6 @@ test_input_file.o \
date_and_tim.o \
volume.o \
dylmr2.o \
ylmr2.o \
wgauss.o \
w0gauss.o \
w1gauss.o \

View File

@ -275,6 +275,10 @@ CONTAINS
WRITE( UNIT = stdout, &
& FMT = '(5X,A," new",T30,"= ",F18.10," Ry",/)' ) fname,energy
!
WRITE(stdout, '(5X,"Gradient error",T30,"= ",1PE12.1)') grad_error
IF( lmovecell ) WRITE(stdout, &
'(5X,"Cell gradient error",T30,"= ",1PE12.1,/)') cell_error
!
! ... the bfgs algorithm starts here
!
IF ( .NOT. energy_wolfe_condition( energy ) .AND. (scf_iter > 1) ) THEN

View File

@ -446,7 +446,5 @@ xc_vdW_DF.o : mp_images.o
xc_vdW_DF.o : recvec.o
xsf.o : constants.o
xsf.o : kind.o
ylmr2.o : constants.o
ylmr2.o : kind.o
environment.o : ../include/configure.h
version.o : ../include/qe_version.h

View File

@ -20,15 +20,16 @@ set(sources
src/path_to_engine_fix_atom_pos.f90
src/path_variables.f90
src/set_defaults.f90
src/stop_run_path.f90
)
src/stop_run_path.f90)
qe_add_library(qe_neb ${sources})
add_library(QE::NEB ALIAS qe_neb)
target_link_libraries(qe_neb
PRIVATE
QE::PW
QE::Modules)
QE::Modules
QE::UTILX
QE::UPF)
###########################################################
# neb.x
@ -63,5 +64,4 @@ qe_install_targets(
qe_neb
# Executables
qe_neb_exe
qe_neb_pathinterpolation_exe
)
qe_neb_pathinterpolation_exe)

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html

Binary file not shown.

View File

@ -216,8 +216,7 @@ set(sources_gamma
Gamma/writedyn.f90)
set(sources_fd
FD/stop_pp.f90
)
FD/stop_pp.f90)
qe_add_library(qe_phonon_ph ${sources_ph})
@ -228,7 +227,10 @@ target_link_libraries(qe_phonon_ph
QE::OpenMP_Fortran
QE::PW
QE::Modules
QE::LR_Modules)
QE::LR_Modules
QE::UTILX
QE::UPF
QE::FFTX)
qe_add_library(qe_phonon_phaux ${sources_phaux})
add_library(QE::PHonon::PHAUX ALIAS qe_phonon_phaux)
@ -243,7 +245,11 @@ target_link_libraries(qe_phonon_gamma
PRIVATE
QE::PW
QE::Modules
QE::LR_Modules)
QE::LR_Modules
QE::UPF
QE::FFTX
QE::UTILX
QE::LAX)
qe_add_library(qe_phonon_fd ${sources_fd})
add_library(QE::PHonon::FD ALIAS qe_phonon_fd)
@ -267,7 +273,7 @@ target_link_libraries(qe_phonon_ph_exe
QE::LAX
QE::Modules
QE::PHonon::PH
)
QE::UTILX)
###########################################################
# dynmat.x
@ -281,8 +287,7 @@ target_link_libraries(qe_phonon_dynmat_exe
QE::Modules
QE::UTILX
QE::PHonon::PH
QE::PHonon::PHAUX
)
QE::PHonon::PHAUX)
###########################################################
# q2r.x
@ -294,8 +299,7 @@ target_link_libraries(qe_phonon_q2r_exe
PRIVATE
QE::Modules
QE::UTILX
QE::PHonon::PH
)
QE::PHonon::PH)
##################################################################
# matdyn.x
@ -310,7 +314,7 @@ target_link_libraries(qe_phonon_matdyn_exe
QE::PW
QE::PHonon::PH
QE::PHonon::PHAUX
)
QE::LR_Modules)
###########################################################
# q2qstar.x
@ -324,8 +328,7 @@ target_link_libraries(qe_phonon_q2qstar_exe
QE::LR_Modules
QE::Modules
QE::UTILX
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# lambda.x
@ -337,8 +340,7 @@ target_link_libraries(qe_phonon_lambda_exe
PRIVATE
QE::Modules
QE::UTILX
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# alpha2f.x
@ -351,8 +353,7 @@ target_link_libraries(qe_phonon_alpha2f_exe
QE::PW
QE::Modules
QE::UTILX
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# epa.x
@ -364,8 +365,7 @@ target_link_libraries(qe_phonon_epa_exe
PRIVATE
QE::Modules
QE::UTILX
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# fqha.x
@ -376,8 +376,7 @@ 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
)
QE::PHonon::PH)
###########################################################
# fd.x
@ -391,8 +390,7 @@ target_link_libraries(qe_phonon_fd_exe
QE::UTILX
QE::Modules
QE::PHonon::FD
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# fd_ef.x
@ -406,8 +404,7 @@ target_link_libraries(qe_phonon_fdef_exe
QE::UTILX
QE::Modules
QE::PHonon::FD
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
# fd_ifc.x
@ -421,8 +418,7 @@ target_link_libraries(qe_phonon_fdifc_exe
QE::UTILX
QE::Modules
QE::PHonon::FD
QE::PHonon::PH
)
QE::PHonon::PH)
###########################################################
@ -443,5 +439,4 @@ qe_install_targets(
qe_phonon_fqha_exe
qe_phonon_fd_exe
qe_phonon_fdef_exe
qe_phonon_fdifc_exe
)
qe_phonon_fdifc_exe)

View File

@ -357,6 +357,9 @@ If .true. in a q=0 calculation for a non metal the
macroscopic dielectric constant of the system is
computed. Do not set <a href="#epsil">epsil</a> to .true. if you have a
metallic system or q/=0: the code will complain and stop.
Note: the input value of epsil will be ignored if ldisp=.true.
(the code will automatically set epsil to .false. for metals,
to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
@ -1556,7 +1559,7 @@ information.
</td></tr>
</table>
<small>
This file has been created by helpdoc utility on Fri Jul 17 10:28:27 CEST 2020.
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020.
</small>
</body>
</html>

View File

@ -183,6 +183,9 @@ NAMELIST: &INPUTPH
macroscopic dielectric constant of the system is
computed. Do not set "epsil" to .true. if you have a
metallic system or q/=0: the code will complain and stop.
Note: the input value of epsil will be ignored if ldisp=.true.
(the code will automatically set epsil to .false. for metals,
to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
+--------------------------------------------------------------------
+--------------------------------------------------------------------
@ -975,4 +978,4 @@ ________________________________________________________________________
information.
This file has been created by helpdoc utility on Fri Jul 17 10:28:27 CEST 2020
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex

Binary file not shown.

Binary file not shown.

View File

@ -52,7 +52,11 @@ target_link_libraries(qe_pp
QE::OpenMP_Fortran
QE::FOX
QE::PW
QE::Modules)
QE::Modules
QE::UTILX
QE::FFTX
QE::UPF
QE::LAX)
###########################################################
# pp.x
@ -64,7 +68,8 @@ target_link_libraries(qe_pp_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX)
###########################################################
# open_grid.x
@ -77,7 +82,8 @@ target_link_libraries(qe_pp_opengrid_exe
QE::PW
QE::UTILX
QE::Modules
QE::PP)
QE::PP
QE::FFTX)
###########################################################
# average.x
@ -90,7 +96,8 @@ target_link_libraries(qe_pp_average_exe
QE::PW
QE::FFTX
QE::Modules
QE::PP)
QE::PP
QE::UTILX)
###########################################################
# bands.x
@ -102,7 +109,9 @@ target_link_libraries(qe_pp_bands_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX
QE::UPF)
###########################################################
# dos.x
@ -113,7 +122,9 @@ set_target_properties(qe_pp_dos_exe PROPERTIES OUTPUT_NAME dos.x)
target_link_libraries(qe_pp_dos_exe
PRIVATE
QE::PW
QE::PP)
QE::PP
QE::Modules
QE::UTILX)
###########################################################
# pawplot.x
@ -125,7 +136,9 @@ target_link_libraries(qe_pp_pawplot_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UPF
QE::UTILX)
###########################################################
# plan_avg.x
@ -137,7 +150,9 @@ target_link_libraries(qe_pp_planavg_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX
QE::UPF)
###########################################################
# plotband.x
@ -185,7 +200,8 @@ target_link_libraries(qe_pp_pmw_exe
QE::PW
QE::UTILX
QE::Modules
QE::PP)
QE::PP
QE::UPF)
###########################################################
# xctest.x
@ -211,7 +227,10 @@ target_link_libraries(qe_pp_projwfc_exe
QE::LAPACK
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::LAX
QE::UTILX
QE::UPF)
###########################################################
# pw2wannier90.x
@ -225,7 +244,9 @@ target_link_libraries(qe_pp_pw2wannier90_exe
QE::PW
QE::UTILX
QE::Modules
QE::PP)
QE::PP
QE::FFTX
QE::UPF)
###########################################################
# pw2critic.x
@ -237,7 +258,8 @@ target_link_libraries(qe_pp_pw2critic_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX)
###########################################################
# wfck2r.x
@ -249,7 +271,9 @@ target_link_libraries(qe_pp_wfck2r_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX
QE::FFTX)
###########################################################
# initial_state.x
@ -261,7 +285,9 @@ target_link_libraries(qe_pp_initial_state_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UPF
QE::UTILX)
###########################################################
# pw2gw.x
@ -274,7 +300,10 @@ target_link_libraries(qe_pp_pw2gw_exe
QE::PW
QE::UTILX
QE::Modules
QE::PP)
QE::PP
QE::FFTX
QE::UPF
QE::MPI_Fortran)
###########################################################
# sumpdos.x
@ -296,7 +325,9 @@ target_link_libraries(qe_pp_epsilon_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UPF
QE::UTILX)
###########################################################
# wannier_ham.x
@ -323,7 +354,8 @@ target_link_libraries(qe_pp_wannierplot_exe
QE::PW
QE::UTILX
QE::Modules
QE::PP)
QE::PP
QE::FFTX)
###########################################################
# molecularpdos.x
@ -347,7 +379,11 @@ target_link_libraries(qe_pp_pw2bgw_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX
QE::UPF
QE::FFTX
QE::MPI_Fortran)
###########################################################
# fs.x
@ -385,7 +421,8 @@ target_link_libraries(qe_pp_fermiproj_exe
PRIVATE
QE::PW
QE::Modules
QE::PP)
QE::PP
QE::UTILX)
###########################################################
# ppacf.x
@ -397,7 +434,10 @@ target_link_libraries(qe_pp_ppacf_exe
PRIVATE
QE::LAPACK
QE::PW
QE::PP)
QE::PP
QE::Modules
QE::UTILX
QE::FFTX)
###########################################################
# benchmark_libxc.x
@ -415,8 +455,7 @@ target_link_libraries(qe_pp_benchmarklibxc_exe
set(sources
simple_transport/src/cryst_to_car.f90
simple_transport/src/lint.f90
simple_transport/src/ef.f90
)
simple_transport/src/ef.f90)
qe_add_executable(qe_pp_st_ef_exe ${sources})
set_target_properties(qe_pp_st_ef_exe PROPERTIES OUTPUT_NAME ef.x)
target_link_libraries(qe_pp_st_ef_exe
@ -432,8 +471,7 @@ set(sources
simple_transport/src/cryst_to_car.f90
simple_transport/src/lint.f90
simple_transport/src/vband_ibz.f90
simple_transport/src/dos.f90
)
simple_transport/src/dos.f90)
qe_add_executable(qe_pp_st_dos_exe ${sources})
set_target_properties(qe_pp_st_dos_exe PROPERTIES OUTPUT_NAME dos_sp.x)
target_link_libraries(qe_pp_st_dos_exe
@ -448,8 +486,7 @@ set(sources
simple_transport/src/cryst_to_car.f90
simple_transport/src/lint.f90
simple_transport/src/vband_ibz.f90
simple_transport/src/fermi_int_0.f90
)
simple_transport/src/fermi_int_0.f90)
qe_add_executable(qe_pp_st_fermiint0_exe ${sources})
set_target_properties(qe_pp_st_fermiint0_exe PROPERTIES OUTPUT_NAME fermi_int_0.x)
target_link_libraries(qe_pp_st_ef_exe
@ -464,8 +501,7 @@ set(sources
simple_transport/src/reducegrid.f90
simple_transport/src/lint.f90
simple_transport/src/vband_ibz.f90
simple_transport/src/fermi_int_1.f90
)
simple_transport/src/fermi_int_1.f90)
qe_add_executable(qe_pp_st_fermiint1_exe ${sources})
set_target_properties(qe_pp_st_fermiint1_exe PROPERTIES OUTPUT_NAME fermi_int_1.x)
target_link_libraries(qe_pp_st_ef_exe
@ -511,5 +547,4 @@ qe_install_targets(
qe_pp_st_ef_exe
qe_pp_st_dos_exe
qe_pp_st_fermiint0_exe
qe_pp_st_fermiint1_exe
)
qe_pp_st_fermiint1_exe)

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html

Binary file not shown.

View File

@ -238,13 +238,12 @@ set(sources
src/wannier_init.f90
src/wannier_check.f90
src/wannier_clean.f90
src/wannier_occ.f90
)
src/wannier_occ.f90)
qe_add_library(qe_pw ${sources})
add_library(QE::PW ALIAS qe_pw)
target_link_libraries(qe_pw
PUBLIC
PRIVATE
QE::HDF5_Fortran
QE::ELPA
QE::SCALAPACK
@ -269,7 +268,10 @@ qe_add_executable(qe_pw_exe ${sources})
set_target_properties(qe_pw_exe PROPERTIES OUTPUT_NAME pw.x)
target_link_libraries(qe_pw_exe
PRIVATE
QE::PW)
QE::PW
QE::Modules
QE::LAX
QE::UTILX)
###########################################################
# ibrav2cell.x
@ -279,7 +281,8 @@ qe_add_executable(qe_pw_tools_ibrav2cell_exe ${sources})
set_target_properties(qe_pw_tools_ibrav2cell_exe PROPERTIES OUTPUT_NAME ibrav2cell.x)
target_link_libraries(qe_pw_tools_ibrav2cell_exe
PRIVATE
QE::PW)
QE::PW
QE::Modules)
###########################################################
# cell2ibrav.x
@ -289,7 +292,8 @@ qe_add_executable(qe_pw_tools_cell2ibrav_exe ${sources})
set_target_properties(qe_pw_tools_cell2ibrav_exe PROPERTIES OUTPUT_NAME cell2ibrav.x)
target_link_libraries(qe_pw_tools_cell2ibrav_exe
PRIVATE
QE::PW)
QE::PW
QE::Modules)
###########################################################
# ev.x
@ -299,7 +303,9 @@ qe_add_executable(qe_pw_tools_ev_exe ${sources})
set_target_properties(qe_pw_tools_ev_exe PROPERTIES OUTPUT_NAME ev.x)
target_link_libraries(qe_pw_tools_ev_exe
PRIVATE
QE::PW)
QE::PW
QE::Modules
QE::UTILX)
###########################################################
# kpoints.x
@ -309,7 +315,9 @@ qe_add_executable(qe_pw_tools_kpoints_exe ${sources})
set_target_properties(qe_pw_tools_kpoints_exe PROPERTIES OUTPUT_NAME kpoints.x)
target_link_libraries(qe_pw_tools_kpoints_exe
PRIVATE
QE::PW)
QE::PW
QE::Modules
QE::UTILX)
###########################################################
# pwi2xsf.x
@ -319,7 +327,9 @@ qe_add_executable(qe_pw_tools_pwi2xsf_exe ${sources})
set_target_properties(qe_pw_tools_pwi2xsf_exe PROPERTIES OUTPUT_NAME pwi2xsf.x)
target_link_libraries(qe_pw_tools_pwi2xsf_exe
PRIVATE
QE::PW)
QE::PW
QE::UTILX
QE::Modules)
###########################################################
@ -332,5 +342,4 @@ qe_install_targets(
qe_pw_tools_cell2ibrav_exe
qe_pw_tools_ev_exe
qe_pw_tools_kpoints_exe
qe_pw_tools_pwi2xsf_exe
)
qe_pw_tools_pwi2xsf_exe)

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html

Binary file not shown.

View File

@ -4,6 +4,7 @@
\def\qe{{\sc Quantum ESPRESSO}}
\usepackage{html}
\usepackage[utf8]{inputenc}
% BEWARE: don't revert from graphicx for epsfig, because latex2html
% doesn't handle epsfig commands !!!
@ -131,6 +132,8 @@ and many others. We quote in particular:
\end{itemize}
and the more recent contributors:
\begin{itemize}
\item Gabriel S. Gusmão (Georgia Tech) and Johannes Voss (ANL)
for BEEF support;
\item Miha Gunde for interface with Grimme's DFT-D3 code, as
repackaged by Bàlint Aradi
\item Pietro Bonf\`a (CINECA) for memory estimator;

View File

@ -344,7 +344,6 @@ SUBROUTINE iosys()
LOGICAL :: exst, parallelfs, domag, stop_on_error
REAL(DP) :: at_dum(3,3), theta, phi, ecutwfc_pp, ecutrho_pp, V
CHARACTER(len=256) :: tempfile
INTEGER, EXTERNAL :: find_free_unit
!
! MAIN CONTROL VARIABLES, MD AND RELAX
!
@ -1215,7 +1214,6 @@ SUBROUTINE iosys()
!
WRITE( stdout, '(/5x,"Reading Hubbard V parameters from the file parameters.in...",/)')
!
tempunit = find_free_unit()
tempfile = TRIM("parameters.in")
!
INQUIRE (file = tempfile, exist = exst)
@ -1227,7 +1225,7 @@ SUBROUTINE iosys()
!
! Open the file parameters.in and read Hubbard_V from there
!
OPEN( UNIT = tempunit, FILE = tempfile, FORM = 'formatted', STATUS = 'unknown' )
OPEN( NEWUNIT = tempunit, FILE = tempfile, FORM = 'formatted', STATUS = 'unknown' )
READ(tempunit,*)
10 READ(tempunit,*,END=11) i, j, V
Hubbard_V(i,j,1) = V

View File

@ -30,6 +30,7 @@ SUBROUTINE offset_atom_wfc( Hubbard_only, l_back, offset, counter )
!
INTEGER :: na, nt, n, l
LOGICAL :: hubbard_wfc, hubbard_wfc_b, hubbard_wfc_b1
CHARACTER(LEN=2) :: s
!
!
counter = 0
@ -39,6 +40,13 @@ SUBROUTINE offset_atom_wfc( Hubbard_only, l_back, offset, counter )
!
nt = ityp(na)
!
WRITE(s,'(i2)') nt
IF ( ( is_hubbard(nt) .OR. is_hubbard_back(nt) ) .AND. upf(nt)%nwfc < 1 ) THEN
CALL errore('offset_atom_wfc', 'no atomic wavefunctions in &
&pseudopotential file for species #' // s // new_line('a') // &
&'use a pseudopotential file with atomic wavefunctions!', l_back)
ENDIF
!
DO n = 1, upf(nt)%nwfc
!
hubbard_wfc = .FALSE.
@ -101,15 +109,10 @@ SUBROUTINE offset_atom_wfc( Hubbard_only, l_back, offset, counter )
ENDIF
ENDDO
!
IF (is_hubbard(nt) .OR. is_hubbard_back(nt)) THEN
!
IF ( l_back.EQ.1 .AND. is_hubbard(nt) .AND. offset(na) < 0 ) &
CALL errore('offset_atom_wfc', 'wrong offset', na)
IF ( l_back.EQ.2 .AND. is_hubbard_back(nt) .AND. offset(na) < 0 ) &
CALL errore('offset_atom_wfc', 'wrong offset back', na)
IF ( l_back.EQ.3 .AND. backall(nt) .AND. offset(na) < 0 ) &
CALL errore('offset_atom_wfc', 'wrong offset back1', na)
!
IF ( ( is_hubbard(nt) .OR. is_hubbard_back(nt) ) .AND. offset(na) < 0 ) THEN
CALL errore('offset_atom_wfc', 'wrong offset: your pseudopotential &
&file for atomic species ' // s // new_line('a') // 'likely &
&does not contain the needed atomic wavefunctions', l_back)
ENDIF
!
ENDDO

View File

@ -20,7 +20,7 @@ SUBROUTINE summary()
USE constants, ONLY : amu_ry, rytoev
USE cell_base, ONLY : alat, ibrav, omega, at, bg, celldm, wmass
USE ions_base, ONLY : nat, atm, zv, tau, ntyp => nsp, ityp
USE cellmd, ONLY : calc
USE cellmd, ONLY : calc, lmovecell
USE ions_base, ONLY : amass
USE gvect, ONLY : ecutrho, ngm, ngm_g, gcutm
USE gvecs, ONLY : doublegrid, ngms, ngms_g, gcutms
@ -52,6 +52,8 @@ SUBROUTINE summary()
USE exx, ONLY : ecutfock
USE fcp_variables, ONLY : lfcpopt, lfcpdyn
USE fcp, ONLY : fcp_summary
USE relax, ONLY : epse, epsf, epsp
USE force_mod, ONLY : lforce
!
IMPLICIT NONE
!
@ -94,6 +96,8 @@ SUBROUTINE summary()
WRITE( stdout, 103) nbnd, ecutwfc, ecutrho
IF ( dft_is_hybrid () ) WRITE( stdout, 104) ecutfock
IF ( lscf) WRITE( stdout, 105) tr2, mixing_beta, nmix, mixing_style
IF ( lforce ) WRITE (stdout, 106) epse, epsf
IF ( lmovecell ) WRITE (stdout, 107) epsp
!
100 FORMAT( /,/,5X, &
& 'bravais-lattice index = ',I12,/,5X, &
@ -112,9 +116,14 @@ SUBROUTINE summary()
104 FORMAT(5X, &
& 'cutoff for Fock operator = ',F12.4,' Ry')
105 FORMAT(5X, &
& 'convergence threshold = ',1PE12.1,/,5X, &
& 'scf convergence threshold = ',1PE12.1,/,5X, &
& 'mixing beta = ',0PF12.4,/,5X, &
& 'number of iterations used = ',I12,2X,A,' mixing')
106 FORMAT(5X, &
& 'energy convergence thresh.= ',1PE12.1,/,5X, &
& 'force convergence thresh. = ',1PE12.1)
107 FORMAT(5X, &
& 'press convergence thresh. = ',1PE12.1)
!
call write_dft_name ( )
!

View File

@ -38,8 +38,7 @@ set(sources
src/summary_band.f90
src/summary_tran.f90
src/sunitary.f90
src/transmit.f90
)
src/transmit.f90)
qe_add_executable(qe_pwcond_exe ${sources})
set_target_properties(qe_pwcond_exe PROPERTIES OUTPUT_NAME pwcond.x)
@ -47,7 +46,11 @@ target_link_libraries(qe_pwcond_exe
PRIVATE
QE::LAPACK
QE::PW
QE::Modules)
QE::Modules
QE::UPF
QE::UTILX
QE::FFTX
QE::MPI_Fortran)
###########################################################

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
doc: all

View File

@ -25,5 +25,4 @@ qe_install_targets(
# Executables
qe_plotphon_kforbands_exe
qe_plotphon_bandstognuplot_exe
qe_plotphon_eminmax_exe
)
qe_plotphon_eminmax_exe)

View File

@ -48,8 +48,7 @@ set(sources
Debye/d1mach.f
Debye/debye3.f
Debye/Debye.f90
Debye/Debye_T.f
)
Debye/Debye_T.f)
qe_add_executable(qe_qha_debye_exe ${sources})
set_target_properties(qe_qha_debye_exe PROPERTIES OUTPUT_NAME Debye.x)
@ -63,8 +62,7 @@ set(sources
Phonon_DOS/det3.f
Phonon_DOS/det4.f
Phonon_DOS/Tetrahedra.f
Phonon_DOS/Integration.f
)
Phonon_DOS/Integration.f)
qe_add_executable(qe_qha_phonondos_exe ${sources})
set_target_properties(qe_qha_phonondos_exe PROPERTIES OUTPUT_NAME phonon_dos.x)
@ -76,8 +74,7 @@ set(sources
Phonon_DOS/k_brillouin.f
Phonon_DOS/generate_tetra.f
Phonon_DOS/det3.f
Phonon_DOS/det4.f
)
Phonon_DOS/det4.f)
qe_add_executable(qe_qha_tetra_exe ${sources})
set_target_properties(qe_qha_tetra_exe PROPERTIES OUTPUT_NAME tetra.x)
@ -92,5 +89,4 @@ qe_install_targets(
qe_qha_partialphonondos_exe
qe_qha_debye_exe
qe_qha_phonondos_exe
qe_qha_tetra_exe
)
qe_qha_tetra_exe)

View File

@ -1,41 +1,40 @@
![q-e-logo](logo.jpg)
> This is the distribution of the Quantum ESPRESSO suite of codes (ESPRESSO:
> opEn-Source Package for Research in Electronic Structure, Simulation, and
> Optimization).
This is the distribution of the Quantum ESPRESSO suite of codes (ESPRESSO:
opEn-Source Package for Research in Electronic Structure, Simulation, and
Optimization)
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
## USAGE
Quick installation instructions for the impatient:
Quick installation instructions for the impatient, using "make":
(`[]` means "optional"):
```
./configure [options]
make all
```
"make" alone prints a list of acceptable targets. Optionally,
`make -jN` runs parallel compilation on `N` processors.
Link to binaries are found in bin/.
("make" alone prints a list of acceptable targets). Binaries go in bin/.
Quick CMake installation instructions for the impatient:
Using "CMake":
```
mkdir ./build
cd ./build
cmake [-DCMAKE_INSTALL_PREFIX=/path/to/install] ..
make [-j$(nproc)]
make [-jN]
[make install]
```
("make" builds all targets). Binaries go in build/bin.
- _CMAKE_INSTALL_PREFIX_: If 'make install' is invoked,
this directory is prepended onto all install directories.
- _make -j$(nproc)_: run parallel compilation
"make" builds all targets. Link to binaries are found in build/bin.
If `make install` is invoked, directory `CMAKE_INSTALL_PREFIX`
is prepended onto all install directories.
For more information, see the general documentation in directory Doc/,
package-specific documentation in \*/Doc/, and the web site
http://www.quantum-espresso.org/
http://www.quantum-espresso.org/. Documentation for developers
can be found on [Wiki page on gitlab](https://gitlab.com/QEF/q-e/-/wikis/home).
## PACKAGES
@ -58,11 +57,16 @@ The following libraries have been isolated and partially encapsulated in view of
- LAXlib: parallel distributed dense-matrix diagonalization, using ELPA, SCALapack, or a custom algorithm.
- KS Solver: parallel iterative diagonalization for the Kohn-Sham Hamiltonian (represented as an operator),using block Davidson and band-by-band or block Conjugate-Gradient algorithms.
- LRlib: performs a variety of tasks connected with (time-dependent) DFPT, to be used also in connection with Many-Body Perturbation Theory.
- upflib: pseudopotential-related code
## GPU-enabled version
Quantum ESPRESSO for GPU's (currently only NVidia) can be found in the
[q-e-gpu repository](gitlab.com/QEF/q-e-gpu).
## Contributing
Before contributing please read the [Contribution Guidelines](CONTRIBUTING.md).
Quantum ESPRESSO is an open project: contributions are welcome.
Read the [Contribution Guidelines](CONTRIBUTING.md) to see how you
can contribute.
## LICENSE

View File

@ -50,8 +50,7 @@ set(sources
src/dveqpsi_us.f90
src/dveqpsi_us_only.f90
src/orthogonalize_omega.f90
src/mix_pot.f90
)
src/mix_pot.f90)
qe_add_library(qe_tddfpt ${sources})
add_library(QE::TDDFPT ALIAS qe_tddfpt)
@ -59,7 +58,10 @@ target_link_libraries(qe_tddfpt
PRIVATE
QE::LR_Modules
QE::PW
QE::Modules)
QE::Modules
QE::UTILX
QE::UPF
QE::FFTX)
###########################################################
# turbo_lanczos.x
@ -71,7 +73,9 @@ target_link_libraries(qe_tddfpt_turbolanczos_exe
PRIVATE
QE::PW
QE::Modules
QE::TDDFPT)
QE::TDDFPT
QE::UPF
QE::UTILX)
###########################################################
# turbo_davidson.x
@ -83,7 +87,9 @@ target_link_libraries(qe_tddfpt_turbodavidson_exe
PRIVATE
QE::PW
QE::Modules
QE::TDDFPT)
QE::TDDFPT
QE::UPF
QE::UTILX)
###########################################################
# turbo_eels.x
@ -97,7 +103,9 @@ target_link_libraries(qe_tddfpt_turboeels_exe
QE::LAX
QE::Modules
QE::TDDFPT
QE::LR_Modules)
QE::LR_Modules
QE::UPF
QE::UTILX)
###########################################################
# tddfpt_calculate_spectrum.x
@ -120,5 +128,4 @@ qe_install_targets(
qe_tddfpt_turbolanczos_exe
qe_tddfpt_turbodavidson_exe
qe_tddfpt_turboeels_exe
qe_tddfpt_calculatespectrum_exe
)
qe_tddfpt_calculatespectrum_exe)

View File

@ -35,11 +35,6 @@ input_description -distribution {Quantum Espresso} -package turboTDDFPT -program
label { This namelist is always needed ! }
var title -type CHARACTER {
info { A string describing the job. }
status { OPTIONAL }
}
var prefix -type CHARACTER {
default { 'pwscf' }
info {

View File

@ -58,15 +58,15 @@
<p><a href="#idm3">INTRODUCTION</a></p>
<p><a href="#idm4">&amp;lr_input</a></p>
<blockquote>
<a href="#idm6">title</a> | <a href="#idm9">prefix</a> | <a href="#idm12">outdir</a> | <a href="#idm15">wfcdir</a> | <a href="#idm18">restart</a> | <a href="#idm22">restart_step</a> | <a href="#idm25">lr_verbosity</a> | <a href="#idm28">disk_io</a>
<a href="#idm6">prefix</a> | <a href="#idm9">outdir</a> | <a href="#idm12">wfcdir</a> | <a href="#idm15">restart</a> | <a href="#idm19">restart_step</a> | <a href="#idm22">lr_verbosity</a> | <a href="#idm25">disk_io</a>
</blockquote>
<p><a href="#idm31">&amp;lr_control</a></p>
<p><a href="#idm28">&amp;lr_control</a></p>
<blockquote>
<a href="#idm32">itermax</a> | <a href="#idm35">ipol</a> | <a href="#idm38">n_ipol</a> | <a href="#idm41">ltammd</a> | <a href="#idm44">no_hxc</a> | <a href="#idm47">lrpa</a> | <a href="#idm50">scissor</a> | <a href="#idm53">charge_response</a> | <a href="#idm56">pseudo_hermitian</a> | <a href="#idm59">d0psi_rs</a> | <a href="#idm62">lshift_d0psi</a>
<a href="#idm29">itermax</a> | <a href="#idm32">ipol</a> | <a href="#idm35">n_ipol</a> | <a href="#idm38">ltammd</a> | <a href="#idm41">no_hxc</a> | <a href="#idm44">lrpa</a> | <a href="#idm47">scissor</a> | <a href="#idm50">charge_response</a> | <a href="#idm53">pseudo_hermitian</a> | <a href="#idm56">d0psi_rs</a> | <a href="#idm59">lshift_d0psi</a>
</blockquote>
<p><a href="#idm66">&amp;lr_post</a></p>
<p><a href="#idm63">&amp;lr_post</a></p>
<blockquote>
<a href="#idm67">omeg</a> | <a href="#idm70">epsil</a> | <a href="#idm73">beta_gamma_z_prefix</a> | <a href="#idm76">w_T_npol</a> | <a href="#idm79">plot_type</a>
<a href="#idm64">omeg</a> | <a href="#idm67">epsil</a> | <a href="#idm70">beta_gamma_z_prefix</a> | <a href="#idm73">w_T_npol</a> | <a href="#idm76">plot_type</a>
</blockquote>
</blockquote>
</blockquote>
@ -106,21 +106,7 @@ Structure of the input data:
<tr><td style="text-align: left; background: #ffebc6; padding: 5 5 5 30; "><table style="border-color: #505087; border-style: solid; border-width: 0; margin-bottom: 10; table-layout: auto; width: 800;"><tbody><tr><td>
<p><b> This namelist is always needed !
</b></p>
<a name="idm6"></a><a name="title"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">title</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top; background: #ffffc3; padding: 2 10 2 10; "><i>Status:</i></td>
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> OPTIONAL
</td>
</tr>
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;"> A string describing the job.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm9"></a><a name="prefix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm6"></a><a name="prefix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">prefix</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
@ -137,7 +123,7 @@ same prefix.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm12"></a><a name="outdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm9"></a><a name="outdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">outdir</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
@ -153,7 +139,7 @@ include the files generated by ground state pw.x run.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm15"></a><a name="wfcdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm12"></a><a name="wfcdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">wfcdir</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
@ -169,7 +155,7 @@ include the files generated by ground state pw.x run.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm18"></a><a name="restart"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm15"></a><a name="restart"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">restart</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -189,7 +175,7 @@ previous runs.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm22"></a><a name="restart_step"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm19"></a><a name="restart_step"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">restart_step</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -206,7 +192,7 @@ itermax Lanczos steps.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm25"></a><a name="lr_verbosity"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm22"></a><a name="lr_verbosity"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lr_verbosity</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -222,7 +208,7 @@ written to standard output.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm28"></a><a name="disk_io"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm25"></a><a name="disk_io"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">disk_io</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
@ -241,11 +227,11 @@ the 'default' mode.
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
</td></tr></tbody></table></td></tr>
</table>
<a name="idm31"></a><a name="lr_control"></a><table border="0" width="100%" style="margin-bottom: 20;">
<a name="idm28"></a><a name="lr_control"></a><table border="0" width="100%" style="margin-bottom: 20;">
<tr><th bgcolor="#ddcba6"><h2 style="margin: 10 10 10 15; text-align: left;"> Namelist: <span class="namelist"><span style="font-weight:normal">&amp;</span>lr_control</span>
</h2></th></tr>
<tr><td style="text-align: left; background: #ffebc6; padding: 5 5 5 30; "><table style="border-color: #505087; border-style: solid; border-width: 0; margin-bottom: 10; table-layout: auto; width: 800;"><tbody><tr><td>
<a name="idm32"></a><a name="itermax"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm29"></a><a name="itermax"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">itermax</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -260,7 +246,7 @@ Number of Lanczos iterations to be performed.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm35"></a><a name="ipol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm32"></a><a name="ipol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ipol</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -280,7 +266,7 @@ tensor and the absorption coefficient are computed.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm38"></a><a name="n_ipol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm35"></a><a name="n_ipol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">n_ipol</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -298,7 +284,7 @@ for a given polarization direction.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm41"></a><a name="ltammd"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm38"></a><a name="ltammd"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ltammd</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -314,7 +300,7 @@ in constructing the Liouvillian.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm44"></a><a name="no_hxc"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm41"></a><a name="no_hxc"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">no_hxc</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -332,7 +318,7 @@ approximation.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm47"></a><a name="lrpa"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm44"></a><a name="lrpa"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lrpa</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -348,7 +334,7 @@ is used (no exchange and correlation).
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm50"></a><a name="scissor"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm47"></a><a name="scissor"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">scissor</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
@ -363,7 +349,7 @@ Scissor shift (in Rydberg units).
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm53"></a><a name="charge_response"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm50"></a><a name="charge_response"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">charge_response</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -381,7 +367,7 @@ presence of the card lr post mandatory.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm56"></a><a name="pseudo_hermitian"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm53"></a><a name="pseudo_hermitian"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">pseudo_hermitian</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -399,7 +385,7 @@ is used (which is two times slower).
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm59"></a><a name="d0psi_rs"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm56"></a><a name="d0psi_rs"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">d0psi_rs</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -421,7 +407,7 @@ is allowed only if the system is finite.
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm62"></a><a name="lshift_d0psi"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm59"></a><a name="lshift_d0psi"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lshift_d0psi</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
@ -450,11 +436,11 @@ centered wrt the center of the molecule.
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
</td></tr></tbody></table></td></tr>
</table>
<a name="idm66"></a><a name="lr_post"></a><table border="0" width="100%" style="margin-bottom: 20;">
<a name="idm63"></a><a name="lr_post"></a><table border="0" width="100%" style="margin-bottom: 20;">
<tr><th bgcolor="#ddcba6"><h2 style="margin: 10 10 10 15; text-align: left;"> Namelist: <span class="namelist"><span style="font-weight:normal">&amp;</span>lr_post</span>
</h2></th></tr>
<tr><td style="text-align: left; background: #ffebc6; padding: 5 5 5 30; "><table style="border-color: #505087; border-style: solid; border-width: 0; margin-bottom: 10; table-layout: auto; width: 800;"><tbody><tr><td>
<a name="idm67"></a><a name="omeg"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm64"></a><a name="omeg"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">omeg</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
@ -470,7 +456,7 @@ transition energy (in Rydberg units)
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm70"></a><a name="epsil"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm67"></a><a name="epsil"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">epsil</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
@ -485,7 +471,7 @@ The broadening/damping term (in Rydberg units).
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm73"></a><a name="beta_gamma_z_prefix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm70"></a><a name="beta_gamma_z_prefix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">beta_gamma_z_prefix</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
@ -503,7 +489,7 @@ parameter. The file outdir/beta gamma z prefix.beta gamma z.x
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm76"></a><a name="w_T_npol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm73"></a><a name="w_T_npol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">w_T_npol</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -520,7 +506,7 @@ calculation. It must be set to 3 if in the previous calculation
</pre></blockquote></td></tr>
</table>
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
<a name="idm79"></a><a name="plot_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<a name="idm76"></a><a name="plot_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
<tr>
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">plot_type</th>
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
@ -545,7 +531,7 @@ the gaussian cube format.
</td></tr>
</table>
<small>
This file has been created by helpdoc utility on Fri Jul 17 10:28:33 CEST 2020.
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020.
</small>
</body>
</html>

View File

@ -40,14 +40,6 @@ NAMELIST: &lr_input
THIS NAMELIST IS ALWAYS NEEDED !
+--------------------------------------------------------------------
Variable: title
Type: CHARACTER
Description: A string describing the job.
Status: OPTIONAL
+--------------------------------------------------------------------
+--------------------------------------------------------------------
Variable: prefix
@ -309,4 +301,4 @@ NAMELIST: &lr_post
===END OF NAMELIST======================================================
This file has been created by helpdoc utility on Fri Jul 17 10:28:33 CEST 2020
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020

View File

@ -35,12 +35,6 @@ Structure of the input data:
<namelist name="lr_input" >
<label> This namelist is always needed !
</label>
<var name="title" type="CHARACTER" >
<info> A string describing the job.
</info>
<status> OPTIONAL
</status>
</var>
<var name="prefix" type="CHARACTER" >
<default> &apos;pwscf&apos;
</default>

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
HTMLS = INPUT_Lanczos.html \

View File

@ -15,14 +15,12 @@ set(sources_util
util_param.f90
thread_util.f90
export_gstart_2_solvers.f90
set_mpi_comm_4_solvers.f90
)
set_mpi_comm_4_solvers.f90)
set(sources_util_tests
tests/tester.f90
tests/utils.f90
tests/mp_world.f90
)
tests/mp_world.f90)
qe_add_library(qe_utilx ${sources_util})
add_library(QE::UTILX ALIAS qe_utilx)
@ -79,8 +77,8 @@ set(source_names
test_mp_sum_iv_buffer
test_mp_sum_rv_buffer
test_mp_sum_iv_buffer_gpu
test_mp_sum_rv_buffer_gpu
)
test_mp_sum_rv_buffer_gpu)
# TODO rename all sources *.f90 -> *.F90
FOREACH(NAME ${source_names})
set(sources tests/${NAME}.f90)

View File

@ -20,15 +20,13 @@ set(sources_x
src/check_orthogonality_k_epsilon.f90
src/assign_paw_radii_to_species.f90
src/io_routines.f90
src/xanes_quadrupole.f90
)
src/xanes_quadrupole.f90)
set(sources_gipaw
src/paw_gipaw.f90
src/gipaw_module.f90
src/init_gipaw_1.f90
src/init_gipaw_2.f90
)
src/init_gipaw_2.f90)
qe_add_library(qe_xspectra_gipaw ${sources_gipaw})
add_library(QE::XSpectra::GIPAW ALIAS qe_xspectra_gipaw)
@ -36,7 +34,8 @@ target_link_libraries(qe_xspectra_gipaw
PRIVATE
QE::PW
QE::UTILX
QE::Modules)
QE::Modules
QE::UPF)
qe_add_library(qe_xspectra ${sources_x})
add_library(QE::XSpectra ALIAS qe_xspectra)
@ -45,7 +44,8 @@ target_link_libraries(qe_xspectra
QE::PW
QE::UTILX
QE::XSpectra::GIPAW
QE::Modules)
QE::Modules
QE::UPF)
###########################################################
# xspectra.x
@ -59,15 +59,15 @@ target_link_libraries(qe_xspectra_exe
QE::Modules
QE::XSpectra
QE::XSpectra::GIPAW
)
QE::UPF
QE::UTILX)
###########################################################
# spectra_correction.x
###########################################################
set(sources
src/spectra_correction.f90
src/gaunt_mod.f90
)
src/gaunt_mod.f90)
qe_add_executable(qe_xspectra_spectracorrection_exe ${sources})
set_target_properties(qe_xspectra_spectracorrection_exe PROPERTIES OUTPUT_NAME spectra_correction.x)
target_link_libraries(qe_xspectra_spectracorrection_exe
@ -75,7 +75,7 @@ target_link_libraries(qe_xspectra_spectracorrection_exe
QE::Modules
QE::XSpectra
QE::XSpectra::GIPAW
)
QE::UTILX)
###########################################################
# molecularnexafs.x
@ -86,8 +86,7 @@ set_target_properties(qe_xspectra_molecularnexafs_exe PROPERTIES OUTPUT_NAME mol
target_link_libraries(qe_xspectra_molecularnexafs_exe
PRIVATE
QE::XSpectra
QE::XSpectra::GIPAW
)
QE::XSpectra::GIPAW)
###########################################################
@ -98,5 +97,4 @@ qe_install_targets(
# Executables
qe_xspectra_exe
qe_xspectra_spectracorrection_exe
qe_xspectra_molecularnexafs_exe
)
qe_xspectra_molecularnexafs_exe)

View File

@ -115,11 +115,11 @@ target_link_libraries(qe_atomic_exe
PRIVATE
QE::UPF
QE::Modules
QE::ATOMIC)
QE::ATOMIC
QE::UTILX)
###########################################################
qe_install_targets(
qe_atomic
qe_atomic_exe
)
qe_atomic_exe)

View File

@ -1644,8 +1644,9 @@ in an unambiguous way if there are "ghost" states
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
</tr>
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
A string containing the test valence electronic
configuration nc, nc=1,nconf. Same syntax as for "config".
A string array containing the test electronic configuration.
configts(nc), nc=1,nconf, has the same syntax as for "config"
but only VALENCE states must be included.
If configts(i) is not set, the electron configuration
is read from the cards following the namelist.
</pre></blockquote></td></tr>
@ -2098,7 +2099,7 @@ can be reproduced with:
</td></tr>
</table>
<small>
This file has been created by helpdoc utility on Fri Jul 17 10:28:35 CEST 2020.
This file has been created by helpdoc utility on Mon Nov 23 08:30:07 UTC 2020.
</small>
</body>
</html>

View File

@ -986,8 +986,9 @@ NAMELIST: &TEST
Variable: configts(i), i=1,nconf
Type: CHARACTER
Description: A string containing the test valence electronic
configuration nc, nc=1,nconf. Same syntax as for "config".
Description: A string array containing the test electronic configuration.
configts(nc), nc=1,nconf, has the same syntax as for "config"
but only VALENCE states must be included.
If configts(i) is not set, the electron configuration
is read from the cards following the namelist.
+--------------------------------------------------------------------
@ -1265,4 +1266,4 @@ CARD:
This file has been created by helpdoc utility on Fri Jul 17 10:28:35 CEST 2020
This file has been created by helpdoc utility on Mon Nov 23 08:30:07 UTC 2020

View File

@ -1,4 +1,4 @@
VERSION = 6.6
VERSION = 6.7
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html

View File

@ -1,475 +0,0 @@
# Find the FFTW library
#
# Original version of this file:
# Copyright (c) 2015, Wenzel Jakob
# https://github.com/wjakob/layerlab/blob/master/cmake/FindFFTW.cmake, commit 4d58bfdc28891b4f9373dfe46239dda5a0b561c6
# Modifications:
# Copyright (c) 2017, Patrick Bos
#
# Usage:
# find_package(FFTW [REQUIRED] [QUIET] [COMPONENTS component1 ... componentX])
#
# It sets the following variables:
# FFTW_FOUND ... true if fftw is found on the system
# FFTW_[component]_FOUND ... true if the component is found on the system (see components below)
# FFTW_LIBRARIES ... full paths to all found fftw libraries
# FFTW_[component]_LIB ... full path to one of the components (see below)
# FFTW_INCLUDE_DIRS ... fftw include directory paths
#
# The following variables will be checked by the function
# FFTW_USE_STATIC_LIBS ... if true, only static libraries are found, otherwise both static and shared.
# FFTW_ROOT ... if set, the libraries are exclusively searched under this path
#
# This package supports the following components:
# FLOAT
# DOUBLE
# LONGDOUBLE
# FLOAT_THREADS
# DOUBLE_THREADS
# LONGDOUBLE_THREADS
# FLOAT_OPENMP
# DOUBLE_OPENMP
# LONGDOUBLE_OPENMP
# FLOAT_MPI
# DOUBLE_MPI
# Check whether to search static or dynamic libs
set(CMAKE_FIND_LIBRARY_SUFFIXES_SAV ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(${FFTW_USE_STATIC_LIBS})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
endif()
# Check common variables
set(FFTW_DIRS $ENV{FFTW_HOME})
set(FFTW_DIRS ${FFTW_DIRS} $ENV{FFTW_ROOT})
set(FFTW_DIRS ${FFTW_DIRS} $ENV{FFTW_DIR})
set(FFTW_DIRS ${FFTW_DIRS} $ENV{FFTW_PATH})
if(FFTW_DIRS)
if("DOUBLE" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE
NAMES "fftw3"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_THREADS
NAMES "fftw3_threads"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_OPENMP
NAMES "fftw3_omp"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_MPI" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_MPI
NAMES "fftw3_mpi"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT
NAMES "fftw3f"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_THREADS
NAMES "fftw3f_threads"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_OPENMP
NAMES "fftw3f_omp"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_MPI" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_MPI
NAMES "fftw3f_mpi"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_LONGDOUBLE
NAMES "fftw3l"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_LONGDOUBLE_THREADS
NAMES "fftw3l_threads"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(FFTW_LONGDOUBLE_OPENMP
NAMES "fftw3l_omp"
PATHS
${FFTW_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
find_path(FFTW_INCLUDE_DIRS
NAMES
"fftw3.h"
"fftw3.f"
PATHS
${FFTW_DIRS}
$ENV{C_INCLUDE_PATH}
PATH_SUFFIXES
"include"
"inc"
NO_DEFAULT_PATH)
else()
# Check if we can use PkgConfig
find_package(PkgConfig)
# Determine from PKG
if(PKG_CONFIG_FOUND AND NOT FFTW_ROOT)
pkg_check_modules(PKG_FFTW QUIET "fftw3")
endif()
# Try to find in the LD_LIBRARY_PATH
string(REPLACE ":" ";" LIBRARY_DIRS "$ENV{LD_LIBRARY_PATH}")
if("DOUBLE" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE
NAMES "fftw3"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_THREADS
NAMES "fftw3_threads"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_OPENMP
NAMES "fftw3_omp"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_MPI" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_DOUBLE_MPI
NAMES "fftw3_mpi"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT
NAMES "fftw3f"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_THREADS
NAMES "fftw3f_threads"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_OPENMP
NAMES "fftw3f_omp"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_MPI" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_FLOAT_MPI
NAMES "fftw3f_mpi"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_LONGDOUBLE
NAMES "fftw3l"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE_THREADS" IN_LIST FFTW_FIND_COMPONENTS)
find_library(
FFTW_LONGDOUBLE_THREADS
NAMES "fftw3l_threads"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE_OPENMP" IN_LIST FFTW_FIND_COMPONENTS)
find_library(FFTW_LONGDOUBLE_OPENMP
NAMES "fftw3l_omp"
PATHS
${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
set(LD_DIRS)
foreach(_lib ${LIBRARY_DIRS})
get_filename_component(_root_lib_dir ${_lib} DIRECTORY)
list(APPEND LD_DIRS ${_root_lib_dir})
endforeach()
find_path(FFTW_INCLUDE_DIRS
NAMES
"fftw3.h"
"fftw3.f"
PATHS
${PKG_FFTW_INCLUDE_DIRS}
${INCLUDE_INSTALL_DIR}
${LD_DIRS}
$ENV{C_INCLUDE_PATH}
PATH_SUFFIXES
"include"
"inc")
endif()
# Components
add_library(FFTW INTERFACE IMPORTED)
if(FFTW_DOUBLE)
set(FFTW_DOUBLE_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_DOUBLE})
else()
set(FFTW_DOUBLE_FOUND FALSE)
endif()
if(FFTW_FLOAT)
set(FFTW_FLOAT_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_FLOAT})
else()
set(FFTW_FLOAT_FOUND FALSE)
endif()
if(FFTW_LONGDOUBLE)
set(FFTW_LONGDOUBLE_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_LONGDOUBLE})
else()
set(FFTW_LONGDOUBLE_FOUND FALSE)
endif()
if(FFTW_DOUBLE_THREADS)
set(FFTW_DOUBLE_THREADS_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_DOUBLE_THREADS})
else()
set(FFTW_DOUBLE_THREADS_FOUND FALSE)
endif()
if(FFTW_FLOAT_THREADS)
set(FFTW_FLOAT_THREADS_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_FLOAT_THREADS})
else()
set(FFTW_FLOAT_THREADS_FOUND FALSE)
endif()
if(FFTW_LONGDOUBLE_THREADS)
set(FFTW_LONGDOUBLE_THREADS_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_LONGDOUBLE_THREADS})
else()
set(FFTW_LONGDOUBLE_THREADS_FOUND FALSE)
endif()
if(FFTW_DOUBLE_OPENMP)
set(FFTW_DOUBLE_OPENMP_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_DOUBLE_OPENMP})
add_library(FFTW::DoubleOpenMP INTERFACE IMPORTED)
else()
set(FFTW_DOUBLE_OPENMP_FOUND FALSE)
endif()
if(FFTW_FLOAT_OPENMP)
set(FFTW_FLOAT_OPENMP_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_FLOAT_OPENMP})
else()
set(FFTW_FLOAT_OPENMP_FOUND FALSE)
endif()
if(FFTW_LONGDOUBLE_OPENMP)
set(FFTW_LONGDOUBLE_OPENMP_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_LONGDOUBLE_OPENMP})
else()
set(FFTW_LONGDOUBLE_OPENMP_FOUND FALSE)
endif()
if(FFTW_DOUBLE_MPI)
set(FFTW_DOUBLE_MPI_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_DOUBLE_MPI})
else()
set(FFTW_DOUBLE_MPI_FOUND FALSE)
endif()
if(FFTW_FLOAT_MPI)
set(FFTW_FLOAT_MPI_FOUND TRUE)
set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTW_FLOAT_MPI})
else()
set(FFTW_FLOAT_MPI_FOUND FALSE)
endif()
target_link_libraries(FFTW INTERFACE ${FFTW_LIBRARIES})
target_include_directories(FFTW INTERFACE ${FFTW_INCLUDE_DIRS})
# End components
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FFTW REQUIRED_VARS FFTW_LIBRARIES FFTW_INCLUDE_DIRS)
mark_as_advanced(
FFTW_INCLUDE_DIRS
FFTW_LIBRARIES
FFTW_FLOAT
FFTW_DOUBLE
FFTW_LONGDOUBLE
FFTW_FLOAT_THREADS
FFTW_DOUBLE_THREADS
FFTW_LONGDOUBLE_THREADS
FFTW_FLOAT_OPENMP
FFTW_DOUBLE_OPENMP
FFTW_LONGDOUBLE_OPENMP
FFTW_FLOAT_MPI
FFTW_DOUBLE_MPI)

478
cmake/FindFFTW3.cmake Normal file
View File

@ -0,0 +1,478 @@
# Find the FFTW3 library
#
# Original version of this file:
# Copyright (c) 2015, Wenzel Jakob
# https://github.com/wjakob/layerlab/blob/master/cmake/FindFFTW.cmake, commit 4d58bfdc28891b4f9373dfe46239dda5a0b561c6
# Modifications:
# Copyright (c) 2017, Patrick Bos
#
# Usage:
# find_package(FFTW3 [REQUIRED] [QUIET] [COMPONENTS component1 ... componentX])
#
# It sets the following variables:
# FFTW3_FOUND ... true if fftw is found on the system
# FFTW3_[component]_FOUND ... true if the component is found on the system (see components below)
# FFTW3_LIBRARIES ... full paths to all found fftw libraries
# FFTW3_[component]_LIB ... full path to one of the components (see below)
# FFTW3_INCLUDE_DIRS ... fftw include directory paths
#
# The following variables will be checked by the function
# FFTW3_USE_STATIC_LIBS ... if true, only static libraries are found, otherwise both static and shared.
# FFTW3_ROOT ... if set, the libraries are exclusively searched under this path
#
# This package supports the following components:
# FLOAT
# DOUBLE
# LONGDOUBLE
# FLOAT_THREADS
# DOUBLE_THREADS
# LONGDOUBLE_THREADS
# FLOAT_OPENMP
# DOUBLE_OPENMP
# LONGDOUBLE_OPENMP
# FLOAT_MPI
# DOUBLE_MPI
# Check whether to search static or dynamic libs
set(CMAKE_FIND_LIBRARY_SUFFIXES_SAV ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(${FFTW3_USE_STATIC_LIBS})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
endif()
# Check common variables
set(FFTW3_DIRS $ENV{FFTW_HOME})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW_ROOT})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW_DIR})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW_PATH})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW3_ROOT})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW3_DIR})
set(FFTW3_DIRS ${FFTW_DIRS} $ENV{FFTW3_PATH})
if(FFTW3_DIRS)
if("DOUBLE" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE
NAMES "fftw3"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_THREADS
NAMES "fftw3_threads"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_OPENMP
NAMES "fftw3_omp"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("DOUBLE_MPI" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_MPI
NAMES "fftw3_mpi"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT
NAMES "fftw3f"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_THREADS
NAMES "fftw3f_threads"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_OPENMP
NAMES "fftw3f_omp"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("FLOAT_MPI" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_MPI
NAMES "fftw3f_mpi"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_LONGDOUBLE
NAMES "fftw3l"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_LONGDOUBLE_THREADS
NAMES "fftw3l_threads"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
if("LONGDOUBLE_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(FFTW3_LONGDOUBLE_OPENMP
NAMES "fftw3l_omp"
PATHS
${FFTW3_DIRS}
PATH_SUFFIXES
"lib"
"lib64"
NO_DEFAULT_PATH)
endif()
find_path(FFTW3_INCLUDE_DIRS
NAMES
"fftw3.h"
"fftw3.f"
PATHS
${FFTW3_DIRS}
$ENV{C_INCLUDE_PATH}
PATH_SUFFIXES
"include"
"inc"
NO_DEFAULT_PATH)
else()
# Check if we can use PkgConfig
find_package(PkgConfig)
# Determine from PKG
if(PKG_CONFIG_FOUND AND NOT FFTW3_ROOT)
pkg_check_modules(PKG_FFTW3 QUIET "fftw3")
endif()
# Try to find in the LD_LIBRARY_PATH
string(REPLACE ":" ";" LIBRARY_DIRS "$ENV{LD_LIBRARY_PATH}")
if("DOUBLE" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE
NAMES "fftw3"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_THREADS
NAMES "fftw3_threads"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_OPENMP
NAMES "fftw3_omp"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("DOUBLE_MPI" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_DOUBLE_MPI
NAMES "fftw3_mpi"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT
NAMES "fftw3f"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_THREADS
NAMES "fftw3f_threads"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_OPENMP
NAMES "fftw3f_omp"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("FLOAT_MPI" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_FLOAT_MPI
NAMES "fftw3f_mpi"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_LONGDOUBLE
NAMES "fftw3l"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE_THREADS" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(
FFTW3_LONGDOUBLE_THREADS
NAMES "fftw3l_threads"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
if("LONGDOUBLE_OPENMP" IN_LIST FFTW3_FIND_COMPONENTS)
find_library(FFTW3_LONGDOUBLE_OPENMP
NAMES "fftw3l_omp"
PATHS
${PKG_FFTW3_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${LIBRARY_DIRS}
PATH_SUFFIXES
"lib"
"lib64")
endif()
set(LD_DIRS)
foreach(_lib ${LIBRARY_DIRS})
get_filename_component(_root_lib_dir ${_lib} DIRECTORY)
list(APPEND LD_DIRS ${_root_lib_dir})
endforeach()
find_path(FFTW3_INCLUDE_DIRS
NAMES
"fftw3.h"
"fftw3.f"
PATHS
${PKG_FFTW3_INCLUDE_DIRS}
${INCLUDE_INSTALL_DIR}
${LD_DIRS}
$ENV{C_INCLUDE_PATH}
PATH_SUFFIXES
"include"
"inc")
endif()
# Components
add_library(FFTW3 INTERFACE IMPORTED)
if(FFTW3_DOUBLE)
set(FFTW3_DOUBLE_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_DOUBLE})
else()
set(FFTW3_DOUBLE_FOUND FALSE)
endif()
if(FFTW3_FLOAT)
set(FFTW3_FLOAT_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_FLOAT})
else()
set(FFTW3_FLOAT_FOUND FALSE)
endif()
if(FFTW3_LONGDOUBLE)
set(FFTW3_LONGDOUBLE_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_LONGDOUBLE})
else()
set(FFTW3_LONGDOUBLE_FOUND FALSE)
endif()
if(FFTW3_DOUBLE_THREADS)
set(FFTW3_DOUBLE_THREADS_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_DOUBLE_THREADS})
else()
set(FFTW3_DOUBLE_THREADS_FOUND FALSE)
endif()
if(FFTW3_FLOAT_THREADS)
set(FFTW3_FLOAT_THREADS_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_FLOAT_THREADS})
else()
set(FFTW3_FLOAT_THREADS_FOUND FALSE)
endif()
if(FFTW3_LONGDOUBLE_THREADS)
set(FFTW3_LONGDOUBLE_THREADS_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_LONGDOUBLE_THREADS})
else()
set(FFTW3_LONGDOUBLE_THREADS_FOUND FALSE)
endif()
if(FFTW3_DOUBLE_OPENMP)
set(FFTW3_DOUBLE_OPENMP_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_DOUBLE_OPENMP})
add_library(FFTW3::DoubleOpenMP INTERFACE IMPORTED)
else()
set(FFTW3_DOUBLE_OPENMP_FOUND FALSE)
endif()
if(FFTW3_FLOAT_OPENMP)
set(FFTW3_FLOAT_OPENMP_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_FLOAT_OPENMP})
else()
set(FFTW3_FLOAT_OPENMP_FOUND FALSE)
endif()
if(FFTW3_LONGDOUBLE_OPENMP)
set(FFTW3_LONGDOUBLE_OPENMP_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_LONGDOUBLE_OPENMP})
else()
set(FFTW3_LONGDOUBLE_OPENMP_FOUND FALSE)
endif()
if(FFTW3_DOUBLE_MPI)
set(FFTW3_DOUBLE_MPI_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_DOUBLE_MPI})
else()
set(FFTW3_DOUBLE_MPI_FOUND FALSE)
endif()
if(FFTW3_FLOAT_MPI)
set(FFTW3_FLOAT_MPI_FOUND TRUE)
set(FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_FLOAT_MPI})
else()
set(FFTW3_FLOAT_MPI_FOUND FALSE)
endif()
target_link_libraries(FFTW3 INTERFACE ${FFTW3_LIBRARIES})
target_include_directories(FFTW3 INTERFACE ${FFTW3_INCLUDE_DIRS})
# End components
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FFTW3 REQUIRED_VARS FFTW3_LIBRARIES FFTW3_INCLUDE_DIRS)
mark_as_advanced(
FFTW3_INCLUDE_DIRS
FFTW3_LIBRARIES
FFTW3_FLOAT
FFTW3_DOUBLE
FFTW3_LONGDOUBLE
FFTW3_FLOAT_THREADS
FFTW3_DOUBLE_THREADS
FFTW3_LONGDOUBLE_THREADS
FFTW3_FLOAT_OPENMP
FFTW3_DOUBLE_OPENMP
FFTW3_LONGDOUBLE_OPENMP
FFTW3_FLOAT_MPI
FFTW3_DOUBLE_MPI)

View File

@ -1,3 +1,4 @@
# This finder needs that BLAS and/or LAPACK have been founded!
if(BLAS_FOUND OR LAPACK_FOUND)
# Trasform spaces in semicolons
string(REPLACE " " ";" _blas_libs "${BLAS_LIBRARIES}")
@ -13,7 +14,7 @@ if(BLAS_FOUND OR LAPACK_FOUND)
get_filename_component(_parent_l3 ${_parent_l2} DIRECTORY)
list(APPEND _search_path ${_lib} ${_parent_l1} ${_parent_l2} ${_parent_l3})
else()
# Remove first two characters '-L' and try again
# Remove first two characters '-L' (or '-l') and try again
string(REGEX MATCH "/[^ ]*" _lib_clean ${_lib})
if(EXISTS "${_lib_clean}")
get_filename_component(_parent_l1 ${_lib_clean} DIRECTORY)
@ -28,97 +29,107 @@ if(BLAS_FOUND OR LAPACK_FOUND)
# Start to search vendor libraries and include directories
# Try to find the Intel MKL
if(_search_path MATCHES "mkl")
find_path(VendorFFTW_INCLUDE_MKL_DFTI
NAMES
"mkl_dfti.f90"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
find_path(VendorFFTW_INCLUDE_FFTW3
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
set(VendorFFTW_INCLUDE_DIRS ${VendorFFTW_INCLUDE_MKL_DFTI} ${VendorFFTW_INCLUDE_FFTW3})
if(NOT VendorFFTW_FIND_COMPONENTS OR "MKL" IN_LIST VendorFFTW_FIND_COMPONENTS)
if(_search_path MATCHES "mkl")
find_path(VendorFFTW_INCLUDE_MKL_DFTI
NAMES
"mkl_dfti.f90"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
find_path(VendorFFTW_INCLUDE_FFTW3
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
set(VendorFFTW_INCLUDE_DIRS ${VendorFFTW_INCLUDE_MKL_DFTI} ${VendorFFTW_INCLUDE_FFTW3})
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_link_libraries(VendorFFTW INTERFACE ${VendorFFTW_LIBRARIES})
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "Intel")
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_link_libraries(VendorFFTW INTERFACE ${VendorFFTW_LIBRARIES})
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "Intel")
break()
endif()
endif()
break()
# Try to find the ARM Performance Library
elseif(_search_path MATCHES "armpl")
find_path(VendorFFTW_INCLUDE_DIRS
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
if(NOT VendorFFTW_FIND_COMPONENTS OR "ArmPL" IN_LIST VendorFFTW_FIND_COMPONENTS)
if(_search_path MATCHES "armpl")
find_path(VendorFFTW_INCLUDE_DIRS
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_link_libraries(VendorFFTW INTERFACE ${VendorFFTW_LIBRARIES})
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "Arm")
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_link_libraries(VendorFFTW INTERFACE ${VendorFFTW_LIBRARIES})
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "Arm")
break()
endif()
endif()
break()
# Try to find the IBM ESSL library
elseif(_search_path MATCHES "essl")
find_path(VendorFFTW_INCLUDE_DIRS
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
if(NOT VendorFFTW_FIND_COMPONENTS OR "IBMESSL" IN_LIST VendorFFTW_FIND_COMPONENTS)
if(_search_path MATCHES "essl")
find_path(VendorFFTW_INCLUDE_DIRS
NAMES
"fftw3.f"
"fftw3.h"
HINTS
${_search_path}
PATH_SUFFIXES
"include"
"fftw"
"include/fftw"
NO_DEFAULT_PATH
)
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "IBMESSL")
add_library(VendorFFTW INTERFACE IMPORTED)
list(APPEND VendorFFTW_LIBRARIES
${BLAS_LIBRARIES}
${BLAS_LINKER_FLAGS}
${LAPACK_LIBRARIES}
${LAPACK_LINKER_FLAGS})
list(REMOVE_DUPLICATES "${VendorFFTW_LIBRARIES}")
target_include_directories(VendorFFTW INTERFACE ${VendorFFTW_INCLUDE_DIRS})
set(VendorFFTW_ID "IBMESSL")
break()
break()
endif()
endif()
endforeach()
endif()

View File

@ -110,8 +110,7 @@ qe_install_targets(
# Executables
qe_wannierprog_exe
qe_w90chk2chk_exe
qe_wannier90_postw90_exe
)
qe_wannier90_postw90_exe)
###########################################################
# QE::MBD
@ -136,4 +135,4 @@ else()
target_link_libraries(qe_mbd INTERFACE Mbd)
qe_fix_fortran_modules(Mbd)
qe_install_targets(qe_mbd Mbd)
endif()
endif()

View File

@ -1,5 +1,5 @@
!
! Copyright (C) 2003-2018 Quantum ESPRESSO group
! Copyright (C) 2003-2020 Quantum ESPRESSO group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
@ -7,4 +7,4 @@
!
! global version number
!
CHARACTER (LEN=6) :: version_number = '6.6'
CHARACTER (LEN=6) :: version_number = '6.7MaX'

22
install/configure vendored
View File

@ -2366,7 +2366,7 @@ $as_echo "${arch}" >&6; }
try_dflags=""
# Add needed include directories
try_iflags="-I\$(TOPDIR)/include -I\$(TOPDIR)/FoX/finclude"
try_iflags="-I\$(TOPDIR)/include -I\$(TOPDIR)/FoX/finclude "
# Checking archiver...
@ -4252,28 +4252,30 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_fc_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Fortran compiler accepts -Mcuda" >&5
$as_echo_n "checking whether Fortran compiler accepts -Mcuda... " >&6; }
if ${ax_cv_check_fcflags___Mcuda+:} false; then :
as_CACHEVAR=`$as_echo "ax_cv_check_fcflags__-Mcuda=cuda$with_cuda_runtime" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Fortran compiler accepts -Mcuda=cuda$with_cuda_runtime" >&5
$as_echo_n "checking whether Fortran compiler accepts -Mcuda=cuda$with_cuda_runtime... " >&6; }
if eval \${$as_CACHEVAR+:} false; then :
$as_echo_n "(cached) " >&6
else
ax_check_save_flags=$FCFLAGS
FCFLAGS="$FCFLAGS -Mcuda"
FCFLAGS="$FCFLAGS -Mcuda=cuda$with_cuda_runtime"
cat > conftest.$ac_ext <<_ACEOF
MODULE test; use cudafor; END MODULE
_ACEOF
if ac_fn_fc_try_compile "$LINENO"; then :
ax_cv_check_fcflags___Mcuda=yes
eval "$as_CACHEVAR=yes"
else
ax_cv_check_fcflags___Mcuda=no
eval "$as_CACHEVAR=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
FCFLAGS=$ax_check_save_flags
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_fcflags___Mcuda" >&5
$as_echo "$ax_cv_check_fcflags___Mcuda" >&6; }
if test "x$ax_cv_check_fcflags___Mcuda" = xyes; then :
eval ac_res=\$$as_CACHEVAR
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
have_cudafor=yes
else
have_cudafor=no

View File

@ -67,7 +67,7 @@ then
# -----------------------------------------
AC_LANG_PUSH([Fortran])
AC_FC_SRCEXT([f90])
AX_CHECK_COMPILE_FLAG([-Mcuda], [have_cudafor=yes], [have_cudafor=no], [], [MODULE test; use cudafor; END MODULE])
AX_CHECK_COMPILE_FLAG([-Mcuda=cuda$with_cuda_runtime], [have_cudafor=yes], [have_cudafor=no], [], [MODULE test; use cudafor; END MODULE])
AC_LANG_POP([Fortran])
if test "x$have_cudafor" != "xyes"
then

View File

@ -144,8 +144,8 @@ clean:
# pwscf data files
@rm -rf pw_*/pwscf.* ph_*/pwscf.* pp_*/pwscf.* epw_*/pwscf.*
# cp data files
@rm -rf cp_si/si_*.* cp_o2/o2_*.* cp_h2o/h2o_*.* cp_sio2/sio2_*.*
@rm -rf cp_si/si.??? cp_o2/o2.??? cp_h2o/h2o.??? cp_sio2/sio2.???
@rm -rf cp_si/si_*.* cp_o2/o2_*.* cp_h2o*/h2o_*.* cp_sio2/sio2_*.*
@rm -rf cp_si/si.??? cp_o2/o2.??? cp_h2o*/h2o.??? cp_sio2/sio2.???
# Special case for 'pw_vc-relax' test-case
@rm -f pw_vc-relax/ave pw_vc-relax/e pw_vc-relax/tv pw_vc-relax/p pw_vc-relax/eal pw_vc-relax/avec
# Special case for 'noexe_langevin' test-case

View File

@ -34,7 +34,7 @@ set(sources
write_upf_schema.f90
write_upf_v2.f90
xmltools.f90
)
ylmr2.f90)
qe_add_library(qe_upflib ${sources})
add_library(QE::UPF ALIAS qe_upflib)
@ -42,7 +42,7 @@ target_link_libraries(qe_upflib
PRIVATE
QE::MPI_Fortran
QE::LAPACK
PUBLIC
QE::UTILX
QE::FOX)
##############################################################
@ -53,24 +53,21 @@ qe_add_executable(qe_upflib_virtual_v2_exe ${sources})
set_target_properties(qe_upflib_virtual_v2_exe PROPERTIES OUTPUT_NAME virtual_v2.x)
target_link_libraries(qe_upflib_virtual_v2_exe
PRIVATE
QE::UPF
)
QE::UPF)
###########################################################
# upfconv.x
###########################################################
set(sources
upfconv.f90
casino_pp.f90
)
casino_pp.f90 )
qe_add_executable(qe_upflib_upfconv_exe ${sources})
set_target_properties(qe_upflib_upfconv_exe PROPERTIES OUTPUT_NAME upfconv.x)
target_link_libraries(qe_upflib_upfconv_exe
PRIVATE
QE::UPF
)
QE::UPF)
############################################################################
qe_install_targets(qe_upflib
qe_upflib_virtual_v2_exe
qe_upflib_upfconv_exe
)
qe_upflib_upfconv_exe)

View File

@ -41,7 +41,8 @@ write_upf.o \
write_upf_new.o \
write_upf_schema.o \
write_upf_v2.o \
xmltools.o
xmltools.o \
ylmr2.o
TLDEPS=libfox

View File

@ -99,5 +99,7 @@ write_upf_schema.o : upf_kinds.o
write_upf_v2.o : pseudo_types.o
write_upf_v2.o : upf_kinds.o
xmltools.o : upf_kinds.o
ylmr2.o : upf_const.o
ylmr2.o : upf_kinds.o
write_upf_new.o : ../include/qe_version.h
write_upf_schema.o : ../include/qe_version.h

View File

@ -15,8 +15,8 @@ subroutine ylmr2 (lmax2, ng, g, gg, ylm)
! Recipes but avoiding the calculation of factorials that generate
! overflow for lmax > 11
!
USE kinds, ONLY : DP
USE constants, ONLY : pi, fpi
USE upf_kinds, ONLY : DP
USE upf_const, ONLY : pi, fpi
!
IMPLICIT NONE
!