mirror of https://gitlab.com/QEF/q-e.git
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:
commit
1473ebbfcf
|
@ -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")
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
|
Binary file not shown.
30
Doc/Makefile
30
Doc/Makefile
|
@ -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 \
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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}.
|
||||
|
|
|
@ -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)
|
|
@ -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
|
||||
|
|
|
@ -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)
|
|
@ -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)
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
|
||||
doc: all
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
||||
###########################################################
|
||||
|
||||
|
|
2
Makefile
2
Makefile
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
||||
###########################################################
|
||||
|
||||
|
|
|
@ -152,7 +152,6 @@ test_input_file.o \
|
|||
date_and_tim.o \
|
||||
volume.o \
|
||||
dylmr2.o \
|
||||
ylmr2.o \
|
||||
wgauss.o \
|
||||
w0gauss.o \
|
||||
w1gauss.o \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
|
Binary file not shown.
|
@ -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)
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
@ -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)
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
|
Binary file not shown.
|
@ -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)
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
|
Binary file not shown.
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ( )
|
||||
!
|
||||
|
|
|
@ -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)
|
||||
|
||||
###########################################################
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
|
||||
doc: all
|
||||
|
|
|
@ -25,5 +25,4 @@ qe_install_targets(
|
|||
# Executables
|
||||
qe_plotphon_kforbands_exe
|
||||
qe_plotphon_bandstognuplot_exe
|
||||
qe_plotphon_eminmax_exe
|
||||
)
|
||||
qe_plotphon_eminmax_exe)
|
|
@ -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)
|
42
README.md
42
README.md
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
|
@ -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 {
|
||||
|
|
|
@ -58,15 +58,15 @@
|
|||
<p><a href="#idm3">INTRODUCTION</a></p>
|
||||
<p><a href="#idm4">&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">&lr_control</a></p>
|
||||
<p><a href="#idm28">&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">&lr_post</a></p>
|
||||
<p><a href="#idm63">&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">&</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">&</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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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> 'pwscf'
|
||||
</default>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
|
||||
HTMLS = INPUT_Lanczos.html \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
|
||||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
|
|
@ -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)
|
|
@ -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)
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
!
|
Loading…
Reference in New Issue