mirror of https://gitlab.com/QEF/q-e.git
More updates to the user guide. Contributions are welcome...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6581 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
d85ca20874
commit
7676b2f2de
|
@ -133,7 +133,7 @@ If you want to learn that, you should read a good textbook, such as e.g.
|
||||||
the book by Richard Martin:
|
the book by Richard Martin:
|
||||||
{\em Electronic Structure: Basic Theory and Practical Methods},
|
{\em Electronic Structure: Basic Theory and Practical Methods},
|
||||||
Cambridge University Press (2004). See also the bibliography
|
Cambridge University Press (2004). See also the bibliography
|
||||||
section in the wiki.
|
section in the Wiki.
|
||||||
|
|
||||||
All trademarks mentioned in this guide belong to their respective owners.
|
All trademarks mentioned in this guide belong to their respective owners.
|
||||||
|
|
||||||
|
@ -306,12 +306,11 @@ Other relevant contributions to \qe:
|
||||||
Alessandro Curioni (IBM Zurich);
|
Alessandro Curioni (IBM Zurich);
|
||||||
\item Gerardo Ballabio wrote the first \texttt{configure} for \qe
|
\item Gerardo Ballabio wrote the first \texttt{configure} for \qe
|
||||||
\item Audrius Alkauskas (IRRMA),
|
\item Audrius Alkauskas (IRRMA),
|
||||||
Simon Binnie (Univ. College London), Davide Ceresoli (MIT),
|
Simon Binnie (Univ. College London), Guido Fratesi, Axel Kohlmeyer (UPenn),
|
||||||
Guido Fratesi, Axel Kohlmeyer (UPenn),
|
|
||||||
Konstantin Kudin (Princeton), Sergey Lisenkov (Univ.Arkansas),
|
Konstantin Kudin (Princeton), Sergey Lisenkov (Univ.Arkansas),
|
||||||
Nicolas Mounet (MIT), William Parker (Ohio State Univ),
|
Nicolas Mounet (MIT), William Parker (Ohio State Univ),
|
||||||
Guido Roma (CEA), Gabriele Sclauzero (SISSA), Sylvie Stucki (IRRMA),
|
Guido Roma (CEA), Gabriele Sclauzero (SISSA), Sylvie Stucki (IRRMA),
|
||||||
Pascal Thibaudeau (CEA),
|
Pascal Thibaudeau (CEA), Vittorio Zecca
|
||||||
answered questions on the mailing list, found bugs, helped in
|
answered questions on the mailing list, found bugs, helped in
|
||||||
porting to new architectures, wrote some code.
|
porting to new architectures, wrote some code.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -340,15 +339,11 @@ site or following the links contained in it. The main entry point for
|
||||||
developers is the QE-forge web site:
|
developers is the QE-forge web site:
|
||||||
\texttt{http://www.qe-forge.org/}.
|
\texttt{http://www.qe-forge.org/}.
|
||||||
|
|
||||||
Announcements about new versions of \qe\ are available
|
|
||||||
via a low-traffic mailing list: \texttt{pw\_users@pwscf.org}.
|
|
||||||
You can
|
|
||||||
subscribe (but not post) to this list from the \qe\ web site.
|
|
||||||
|
|
||||||
The recommended place where to ask questions about installation
|
The recommended place where to ask questions about installation
|
||||||
and usage of \qe, and to report bugs, is the \texttt{pw\_forum}
|
and usage of \qe, and to report bugs, is the \texttt{pw\_forum}
|
||||||
mailing list: \texttt{pw\_forum@pwscf.org}. Here you can obtain
|
mailing list: \texttt{pw\_forum@pwscf.org}. Here you can receive
|
||||||
help from the developers and many knowledgeable users.
|
news about \qe\ and obtain help from the developers and from
|
||||||
|
knowledgeable users.
|
||||||
You have to be subscribed in order to post to the list.
|
You have to be subscribed in order to post to the list.
|
||||||
Please browse or search the archive -- links are available
|
Please browse or search the archive -- links are available
|
||||||
in the "Tools" page of the \qe\ web site,
|
in the "Tools" page of the \qe\ web site,
|
||||||
|
@ -362,8 +357,15 @@ automatically deleted with no further processing (sorry, too
|
||||||
much spam). In case of trouble, carefully check that your return
|
much spam). In case of trouble, carefully check that your return
|
||||||
e-mail is the correct one (i.e. the one you used to subscribe).
|
e-mail is the correct one (i.e. the one you used to subscribe).
|
||||||
|
|
||||||
The \texttt{pw\_forum} mailing list is also the recommanded place
|
Since \texttt{pw\_forum} averages $\sim 10$ message a day, an alternative
|
||||||
where to contact the developers of \qe.
|
low-traffic mailing list: \texttt{pw\_users@pwscf.org}, is provided for
|
||||||
|
those interested only in \qe-related news, such as e.g. announcements
|
||||||
|
of new versions, tutorials, etc.. You can subscribe (but not post) to
|
||||||
|
this list from the \qe\ web site.
|
||||||
|
|
||||||
|
If you need to contact the developers for {\em specific} questions
|
||||||
|
about coding, proposals, offers of help, etc., send a message to the
|
||||||
|
developers' mailing list: \texttt{q-e-developers@qe-forge.org}.
|
||||||
|
|
||||||
\subsection{Terms of use}
|
\subsection{Terms of use}
|
||||||
|
|
||||||
|
@ -420,7 +422,8 @@ may be distributed as a "diff" file. In order to install a patch (for instance):
|
||||||
If more than one patch is present, they should be applied in the correct order.
|
If more than one patch is present, they should be applied in the correct order.
|
||||||
|
|
||||||
Daily snapshots of the development version can be downloaded from the
|
Daily snapshots of the development version can be downloaded from the
|
||||||
developers' site \texttt{qe-forge.org}: follow the link ''Quantum ESPRESSO'', then ''SCM''. Beware: the development version
|
developers' site \texttt{qe-forge.org}: follow the link ''Quantum ESPRESSO'',
|
||||||
|
then ''SCM''. Beware: the development version
|
||||||
is, well, under development: use at your own risk! The bravest
|
is, well, under development: use at your own risk! The bravest
|
||||||
may access the development version via anonymous CVS
|
may access the development version via anonymous CVS
|
||||||
(Concurrent Version System): see the Developer Manual
|
(Concurrent Version System): see the Developer Manual
|
||||||
|
@ -691,14 +694,14 @@ and to modify file \texttt{make.sys} accordingly (MKL must be linked {\em after}
|
||||||
the FFTW-MKL interface)
|
the FFTW-MKL interface)
|
||||||
|
|
||||||
If everything else fails, you'll have to modify file \texttt{make.sys}
|
If everything else fails, you'll have to modify file \texttt{make.sys}
|
||||||
manually: see Sect.\ref{manconf}.
|
manually: see Sec.\ref{SubSec:manconf}.
|
||||||
\paragraph{MPI libraries}
|
\paragraph{MPI libraries}
|
||||||
MPI libraries are usually needed for parallel execution
|
MPI libraries are usually needed for parallel execution
|
||||||
(unless you are happy with OpenMP multicore parallelization).
|
(unless you are happy with OpenMP multicore parallelization).
|
||||||
In well-configured machines, \texttt{configure} should find the appropriate
|
In well-configured machines, \texttt{configure} should find the appropriate
|
||||||
parallel compiler for you, and this should find the appropriate
|
parallel compiler for you, and this should find the appropriate
|
||||||
libraries. Since often this doesn't
|
libraries. Since often this doesn't
|
||||||
happen, especially on PC clusters, see Sec.\ref{Sec:LinuxPCMPI}.
|
happen, especially on PC clusters, see Sec.\ref{SubSec:LinuxPCMPI}.
|
||||||
|
|
||||||
\paragraph{Other libraries}
|
\paragraph{Other libraries}
|
||||||
\qe\ can use the MASS vector math
|
\qe\ can use the MASS vector math
|
||||||
|
@ -732,7 +735,7 @@ know exactly which routines are affected by the changed settings and how to
|
||||||
force their recompilation.
|
force their recompilation.
|
||||||
|
|
||||||
\subsubsection{Manual configuration}
|
\subsubsection{Manual configuration}
|
||||||
\label{manconf}
|
\label{SubSec:manconf}
|
||||||
If \texttt{configure} stops before the end, and you don't find a way to fix
|
If \texttt{configure} stops before the end, and you don't find a way to fix
|
||||||
it, you have to write working "make.sys", "include/fft\_defs.h" and
|
it, you have to write working "make.sys", "include/fft\_defs.h" and
|
||||||
"include/c\_defs.h" files.
|
"include/c\_defs.h" files.
|
||||||
|
@ -772,19 +775,33 @@ Here is a list:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \texttt{make pw} produces PW/pw.x\\
|
\item \texttt{make pw} produces PW/pw.x\\
|
||||||
pw.x calculates electronic structure, structural optimization, molecular dynamics, barriers with NEB.
|
pw.x calculates electronic structure, structural optimization, molecular dynamics, barriers with NEB.
|
||||||
\item \texttt{make ph} produces PH/ph.x\\
|
\item \texttt{make ph} produces the following codes for phonon calculations:
|
||||||
ph.x calculates phonon frequencies and displacement patterns,
|
\begin{itemize}
|
||||||
dielectric tensors, effective charges (uses data produced by pw.x).
|
\item PH/ph.x\\
|
||||||
|
ph.x calculates phonon frequencies and displacement patterns,
|
||||||
|
dielectric tensors, effective charges (uses data produced by pw.x).
|
||||||
|
\item dynmat.x\\
|
||||||
|
applies various kinds of Acoustic Sum Rule (ASR),
|
||||||
|
calculates LO-TO splitting at q = 0 in insulators, IR and Raman
|
||||||
|
cross sections (if the coefficients have been properly calculated),
|
||||||
|
from the dynamical matrix produced by ph.x
|
||||||
|
\item q2r.x\\
|
||||||
|
calculates Interatomic Force Constants (IFC) in real space
|
||||||
|
from dynamical matrices produced by ph.x on a regular q-grid
|
||||||
|
\item matdyn.x\\
|
||||||
|
produces phonon frequencies at a generic wave vector
|
||||||
|
using the IFC file calculated by q2r.x; may also calculate phonon DOS
|
||||||
|
\end{itemize}
|
||||||
\item \texttt{make d3} produces D3/d3.x\\
|
\item \texttt{make d3} produces D3/d3.x\\
|
||||||
d3.x calculates anharmonic phonon lifetimes (third-order derivatives
|
d3.x calculates anharmonic phonon lifetimes (third-order derivatives
|
||||||
of the energy), using data produced by pw.x and ph.x (Ultrasoft
|
of the energy), using data produced by pw.x and ph.x (Ultrasoft
|
||||||
pseudopotentials not supported).
|
pseudopotentials not supported).
|
||||||
\item \texttt{make gamma} produces Gamma/phcg.x\\
|
\item \texttt{make gamma} produces Gamma/phcg.x\\
|
||||||
phcg.x is a version of ph.x that calculates phonons at q = 0 using
|
phcg.x is a version of ph.x that calculates phonons at q = 0 using
|
||||||
conjugate-gradient minimization of the density functional expanded to
|
conjugate-gradient minimization of the density functional expanded to
|
||||||
second-order. Only the $\Gamma$ (q = 0) point is used for Brillouin zone
|
second-order. Only the $\Gamma$ (q = 0) point is used for Brillouin zone
|
||||||
integration. It is faster and takes less memory than ph.x, but does
|
integration. It is faster and takes less memory than ph.x, but does
|
||||||
not support Ultrasoft pseudopotentials.
|
not support Ultrasoft pseudopotentials.
|
||||||
\item \texttt{make pp} produces several codes for data postprocessing, in PP/
|
\item \texttt{make pp} produces several codes for data postprocessing, in PP/
|
||||||
(see list below).
|
(see list below).
|
||||||
\item \texttt{make tools} produces several utility programs in pwtools/ (see
|
\item \texttt{make tools} produces several utility programs in pwtools/ (see
|
||||||
|
@ -795,7 +812,7 @@ not support Ultrasoft pseudopotentials.
|
||||||
\item \texttt{make ld1} produces code atomic/ld1.x\\
|
\item \texttt{make ld1} produces code atomic/ld1.x\\
|
||||||
for pseudopotential generation (see specific documentation in atomic\_doc/).
|
for pseudopotential generation (see specific documentation in atomic\_doc/).
|
||||||
\item \texttt{make upf} produces utilities for pseudopotential conversion in
|
\item \texttt{make upf} produces utilities for pseudopotential conversion in
|
||||||
directory upftools/ (see section 4, ``Pseudopotentials'').
|
directory upftools/.
|
||||||
\item \texttt{make cp} produces the Car-Parrinello code CP in CPV/cp.x
|
\item \texttt{make cp} produces the Car-Parrinello code CP in CPV/cp.x
|
||||||
and the postprocessing code CPV/cppp.x.
|
and the postprocessing code CPV/cppp.x.
|
||||||
\item \texttt{make all} produces all of the above.
|
\item \texttt{make all} produces all of the above.
|
||||||
|
@ -845,15 +862,6 @@ code voronoy.x (removed from distribution after v.4.1).
|
||||||
|
|
||||||
The utility programs in pwtools/ are:
|
The utility programs in pwtools/ are:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item dynmat.x applies various kinds of Acoustic Sum Rule (ASR),
|
|
||||||
calculates LO-TO splitting at q = 0 in insulators, IR and Raman
|
|
||||||
cross sections (if the coefficients have been properly calculated),
|
|
||||||
from the dynamical matrix produced by ph.x
|
|
||||||
\item q2r.x calculates Interatomic Force Constants (IFC) in real space
|
|
||||||
from dynamical matrices produced by ph.x on a regular q-grid
|
|
||||||
\item matdyn.x produces phonon frequencies at a generic wave vector
|
|
||||||
using the IFC file calculated by q2r.x; may also calculate phonon DOS
|
|
||||||
\item fqha.x for quasi-harmonic calculations
|
|
||||||
\item lambda.x calculates the electron-phonon coefficient $\lambda$ and the
|
\item lambda.x calculates the electron-phonon coefficient $\lambda$ and the
|
||||||
function $\alpha^2F(\omega)$
|
function $\alpha^2F(\omega)$
|
||||||
\item dist.x calculates distances and angles between atoms in a cell,
|
\item dist.x calculates distances and angles between atoms in a cell,
|
||||||
|
@ -929,7 +937,7 @@ high I/O performance (i.e., don't use an NFS-mounted directory).
|
||||||
2. If you have compiled the parallel version of \qe\ (this
|
2. If you have compiled the parallel version of \qe\ (this
|
||||||
is the default if parallel libraries are detected), you will usually
|
is the default if parallel libraries are detected), you will usually
|
||||||
have to specify a driver program (such as poe or mpiexec) and the
|
have to specify a driver program (such as poe or mpiexec) and the
|
||||||
number of processors: see section ''Running on parallel machines' for
|
number of processors: see Sec.\ref{SubSec:para} for
|
||||||
details. In order to do that, edit again the environment variables file
|
details. In order to do that, edit again the environment variables file
|
||||||
and set the PARA\_PREFIX and PARA\_POSTFIX variables as needed. Parallel
|
and set the PARA\_PREFIX and PARA\_POSTFIX variables as needed. Parallel
|
||||||
executables will be run by a command like this:
|
executables will be run by a command like this:
|
||||||
|
@ -1232,7 +1240,7 @@ together with the compilers most frequently used on AMD systems:
|
||||||
pgf90, pathscale, openf95, sunf95.
|
pgf90, pathscale, openf95, sunf95.
|
||||||
|
|
||||||
\subsubsection{Linux PC clusters with MPI}
|
\subsubsection{Linux PC clusters with MPI}
|
||||||
\label{Sec:LinuxPCMPI}
|
\label{SubSec:LinuxPCMPI}
|
||||||
PC clusters running some version of MPI are a very popular
|
PC clusters running some version of MPI are a very popular
|
||||||
computational platform nowadays. \qe\ is known to work
|
computational platform nowadays. \qe\ is known to work
|
||||||
with at least two of the major MPI implementations (MPICH, LAM-MPI),
|
with at least two of the major MPI implementations (MPICH, LAM-MPI),
|
||||||
|
@ -1250,12 +1258,11 @@ http://www.democritos.it/pipermail/pw\_forum/2008April/008818.htm .
|
||||||
If \qe\ does not work for some reason on a PC cluster,
|
If \qe\ does not work for some reason on a PC cluster,
|
||||||
try first if it works in serial execution. A frequent problem with parallel
|
try first if it works in serial execution. A frequent problem with parallel
|
||||||
execution is that \qe\ does not read from standard input,
|
execution is that \qe\ does not read from standard input,
|
||||||
due to the configuration of MPI libraries: see section
|
due to the configuration of MPI libraries: see Sec.\ref{SubSec:para}.
|
||||||
''Running on parallel machines''.
|
|
||||||
|
|
||||||
If you are dissatisfied with the performances in parallel execution,
|
If you are dissatisfied with the performances in parallel execution,
|
||||||
read the section on ''Parallelization issues''. See also the following
|
see Sec.\ref{Sec:para} and in particular Sec.\ref{SubSec:badpara}.
|
||||||
post from Axel Kohlmeyer:\\
|
See also the following post from Axel Kohlmeyer:\\
|
||||||
http://www.democritos.it/pipermail/pw\_forum/2008-April/008796.html
|
http://www.democritos.it/pipermail/pw\_forum/2008-April/008796.html
|
||||||
|
|
||||||
\subsubsection{Intel Mac OS X}
|
\subsubsection{Intel Mac OS X}
|
||||||
|
@ -1291,6 +1298,7 @@ no longer supported since v.\version.
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\section{Parallelism}
|
\section{Parallelism}
|
||||||
|
\label{Sec:para}
|
||||||
|
|
||||||
\subsection{Understanding Parallelism in \qe}
|
\subsection{Understanding Parallelism in \qe}
|
||||||
|
|
||||||
|
@ -1342,6 +1350,7 @@ and OpenMP threads in a controlled manner, forget about mixed
|
||||||
OpenMP-MPI parallelization.
|
OpenMP-MPI parallelization.
|
||||||
|
|
||||||
\subsection{Running on parallel machines}
|
\subsection{Running on parallel machines}
|
||||||
|
\label{SubSec:para}
|
||||||
|
|
||||||
Parallel execution is strongly system- and installation-dependent.
|
Parallel execution is strongly system- and installation-dependent.
|
||||||
Typically one has to specify:
|
Typically one has to specify:
|
||||||
|
@ -1905,7 +1914,30 @@ is the directory where the pw.x executable is! The advantage of this
|
||||||
procedure is that all files are properly closed, whereas just killing
|
procedure is that all files are properly closed, whereas just killing
|
||||||
the process may leave data and output files in unusable state.
|
the process may leave data and output files in unusable state.
|
||||||
|
|
||||||
\subsection{Phonon calculations}
|
\subsection{Hartree-Fock and Hybrid functionals}
|
||||||
|
|
||||||
|
Calculations in the Hartree-Fock approximation, or using hybrid XC functionals
|
||||||
|
that include some Hartree-Fock exchange, can be performed by adding
|
||||||
|
\texttt{-DEXX} to the preprocessing options \texttt{DFLAGS} in file
|
||||||
|
\texttt{make.sys}. Issue command \texttt{make clean} before recompiling.
|
||||||
|
Documentation on usage can be found in subdirectory \texttt{EXX\_example/}
|
||||||
|
of the \texttt{examples/} directory.
|
||||||
|
|
||||||
|
The algorithm is quite standard: see for instance Chawla and Voth,
|
||||||
|
JCP {bf 108}, 4697 (1998); Sorouri, Foulkes and Hine, JCP {\bf 124},
|
||||||
|
064105 (2006); Spencer and Alavi, PRB {\bf 77}, 193110 (2008).
|
||||||
|
Basically, one generates auxiliary densities $\rho_{-q}=\phi^{*}_{k+q}*\psi_k$
|
||||||
|
in real space and transforms them to reciprocal space using FFT;
|
||||||
|
the Poisson equation is solved and the resulting potential is transformed
|
||||||
|
back to real space using FFT, then multiplied by $\phi_{k+q}$ and the
|
||||||
|
results are accumulated.
|
||||||
|
The only tricky point is the treatment of the $q\rightarrow 0$ limit,
|
||||||
|
which is described in the Appendix A.5 of the \qe\ paper mentioned
|
||||||
|
in the Introduction (note the reference to the Gygi and Baldereschi paper).
|
||||||
|
See also J. Comp. Chem. {\bf 29}, 2098 (2008);
|
||||||
|
JACS {\bf 129}, 10402 (2007) for examples of applications.
|
||||||
|
|
||||||
|
\section{Phonon calculations}
|
||||||
|
|
||||||
Phonon calculation is presently a two-step process:
|
Phonon calculation is presently a two-step process:
|
||||||
First, you have to find the ground-state atomic and electronic configuration;
|
First, you have to find the ground-state atomic and electronic configuration;
|
||||||
|
@ -1918,7 +1950,7 @@ the same mechanism of the pw.x code, i.e. by creating a file prefix.EXIT in the
|
||||||
working directory. Execution can be resumed by setting 'recover=.true.' in the
|
working directory. Execution can be resumed by setting 'recover=.true.' in the
|
||||||
subsequent input data.
|
subsequent input data.
|
||||||
|
|
||||||
\paragraph{Single-q calculation}
|
\subsection{Single-q calculation}
|
||||||
|
|
||||||
The phonon code ph.x calculates normal modes at a given q-vector, starting
|
The phonon code ph.x calculates normal modes at a given q-vector, starting
|
||||||
from data files produced by pw.x with a simple SCF calculation.
|
from data files produced by pw.x with a simple SCF calculation.
|
||||||
|
@ -1956,7 +1988,7 @@ for a typical experimental setup.
|
||||||
|
|
||||||
A sample phonon calculation is performed in Example 02.
|
A sample phonon calculation is performed in Example 02.
|
||||||
|
|
||||||
\paragraph{Calculation of interatomic force constants in real space}
|
\subsection{Calculation of interatomic force constants in real space}
|
||||||
|
|
||||||
First, dynamical matrices D(q) are calculated and saved for a suitable uniform
|
First, dynamical matrices D(q) are calculated and saved for a suitable uniform
|
||||||
grid of q-vectors (only those in the Irreducible Brillouin Zone of the
|
grid of q-vectors (only those in the Irreducible Brillouin Zone of the
|
||||||
|
@ -1974,7 +2006,7 @@ of q-vectors. Program matdyn.x may be used to produce phonon modes and
|
||||||
frequencies at any q using the Interatomic Force Constants file as input.
|
frequencies at any q using the Interatomic Force Constants file as input.
|
||||||
See Example 06.
|
See Example 06.
|
||||||
|
|
||||||
\paragraph{Calculation of electron-phonon interaction coefficients}
|
\subsection{Calculation of electron-phonon interaction coefficients}
|
||||||
|
|
||||||
The calculation of electron-phonon coefficients in metals is made difficult by
|
The calculation of electron-phonon coefficients in metals is made difficult by
|
||||||
the slow convergence of the sum at the Fermi energy. It is convenient to
|
the slow convergence of the sum at the Fermi energy. It is convenient to
|
||||||
|
@ -1993,14 +2025,14 @@ All of the above must be repeated for all desired q-vectors and the final
|
||||||
result is summed over all q-vectors, using pwtools/lambda.x. The input
|
result is summed over all q-vectors, using pwtools/lambda.x. The input
|
||||||
data for the latter is described in the header of pwtools/lambda.f90.
|
data for the latter is described in the header of pwtools/lambda.f90.
|
||||||
|
|
||||||
\subsection{Post-processing}
|
\section{Post-processing}
|
||||||
|
|
||||||
There are a number of auxiliary codes performing postprocessing tasks such
|
There are a number of auxiliary codes performing postprocessing tasks such
|
||||||
as plotting, averaging, and so on, on the various quantities calculated by
|
as plotting, averaging, and so on, on the various quantities calculated by
|
||||||
pw.x. Such quantities are saved by pw.x into the output data file(s).
|
pw.x. Such quantities are saved by pw.x into the output data file(s).
|
||||||
Postprocessing codes are in the PP/ directory.
|
Postprocessing codes are in the PP/ directory.
|
||||||
|
|
||||||
\paragraph{Plotting selected quantities}
|
\subsection{Plotting selected quantities}
|
||||||
|
|
||||||
The main postprocessing code pp.x reads data file(s), extracts or calculates
|
The main postprocessing code pp.x reads data file(s), extracts or calculates
|
||||||
the selected quantity, writes it into a format that is suitable for plotting.
|
the selected quantity, writes it into a format that is suitable for plotting.
|
||||||
|
@ -2027,7 +2059,7 @@ or by advanced plotting software XCrySDen and gOpenMol (3D plots).
|
||||||
See file INPUT\_PP.* for a detailed description of the input for code pp.x.
|
See file INPUT\_PP.* for a detailed description of the input for code pp.x.
|
||||||
See example05/ in the examples/ directory for a charge density plot.
|
See example05/ in the examples/ directory for a charge density plot.
|
||||||
|
|
||||||
\paragraph{Band structure, Fermi surface}
|
\subsection{Band structure, Fermi surface}
|
||||||
|
|
||||||
The code bands.x reads data file(s), extracts eigenvalues,
|
The code bands.x reads data file(s), extracts eigenvalues,
|
||||||
regroups them into bands (the algorithm used to order bands and to resolve
|
regroups them into bands (the algorithm used to order bands and to resolve
|
||||||
|
@ -2044,7 +2076,7 @@ bands\_FS.x. The resulting file in .xsf format can be read and plotted
|
||||||
using xcrysden. See example08/ for an example of Fermi surface
|
using xcrysden. See example08/ for an example of Fermi surface
|
||||||
visualization (Ni, including the spin-polarized case).
|
visualization (Ni, including the spin-polarized case).
|
||||||
|
|
||||||
\paragraph{Projection over atomic states, DOS}
|
\subsection{Projection over atomic states, DOS}
|
||||||
|
|
||||||
The code projwfc.x calculates projections of wavefunctions
|
The code projwfc.x calculates projections of wavefunctions
|
||||||
over atomic orbitals. The atomic wavefunctions are those contained
|
over atomic orbitals. The atomic wavefunctions are those contained
|
||||||
|
@ -2075,29 +2107,6 @@ performed on a subsection of the old path. The input file needed by
|
||||||
path\_int.x can be easily set up with the help of the self-explanatory
|
path\_int.x can be easily set up with the help of the self-explanatory
|
||||||
path\_int.sh shell script.
|
path\_int.sh shell script.
|
||||||
|
|
||||||
\subsection{Hartree-Fock and Hybrid functionals}
|
|
||||||
|
|
||||||
Calculations in the Hartree-Fock approximation, or using hybrid XC functionals
|
|
||||||
that include some Hartree-Fock exchange, can be performed by adding
|
|
||||||
\texttt{-DEXX} to the preprocessing options \texttt{DFLAGS} in file
|
|
||||||
\texttt{make.sys}. Issue command \texttt{make clean} before recompiling.
|
|
||||||
Documentation on usage can be found in subdirectory \texttt{EXX\_example/}
|
|
||||||
of the \texttt{examples/} directory.
|
|
||||||
|
|
||||||
The algorithm is quite standard: see for instance Chawla and Voth,
|
|
||||||
JCP {bf 108}, 4697 (1998); Sorouri, Foulkes and Hine, JCP {\bf 124},
|
|
||||||
064105 (2006); Spencer and Alavi, PRB {\bf 77}, 193110 (2008).
|
|
||||||
Basically, one generates auxiliary densities $\rho_{-q}=\phi^{*}_{k+q}*\psi_k$
|
|
||||||
in real space and transforms them to reciprocal space using FFT;
|
|
||||||
the Poisson equation is solved and the resulting potential is transformed
|
|
||||||
back to real space using FFT, then multiplied by $\phi_{k+q}$ and the
|
|
||||||
results are accumulated.
|
|
||||||
The only tricky point is the treatment of the $q\rightarrow 0$ limit,
|
|
||||||
which is described in the Appendix A.5 of the \qe\ paper mentioned
|
|
||||||
in the Introduction (note the reference to the Gygi and Baldereschi paper).
|
|
||||||
See also J. Comp. Chem. {\bf 29}, 2098 (2008);
|
|
||||||
JACS {\bf 129}, 10402 (2007) for examples of applications.
|
|
||||||
|
|
||||||
\section{Using CP}
|
\section{Using CP}
|
||||||
|
|
||||||
This section is intended to explain how to perform basic Car-Parrinello (CP)
|
This section is intended to explain how to perform basic Car-Parrinello (CP)
|
||||||
|
@ -2779,6 +2788,7 @@ self-consistency, default value = 8) if disk\_io is set to 'high'
|
||||||
or not specified; q = 0 if disk\_io='low' or 'minimal'.
|
or not specified; q = 0 if disk\_io='low' or 'minimal'.
|
||||||
|
|
||||||
\subsection{Parallelization issues}
|
\subsection{Parallelization issues}
|
||||||
|
\label{SubSec:badpara}
|
||||||
|
|
||||||
pw.x and cp.x can run in principle on any number of processors.
|
pw.x and cp.x can run in principle on any number of processors.
|
||||||
The effectiveness of parallelization is ultimately judged by the
|
The effectiveness of parallelization is ultimately judged by the
|
||||||
|
@ -2787,7 +2797,7 @@ The effectiveness of parallelization is ultimately judged by the
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item the size and type of the system under study;
|
\item the size and type of the system under study;
|
||||||
\item the judicious choice of the various levels of parallelization
|
\item the judicious choice of the various levels of parallelization
|
||||||
(detailed in the "Running on parallel machines" sections);
|
(detailed in Sec.\ref{SubSec:para});
|
||||||
\item the availability of fast interprocess communications (or lack thereof).
|
\item the availability of fast interprocess communications (or lack thereof).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
Ideally one would like to have linear scaling, i.e. $T_N \sim T_0/N_p$ for
|
Ideally one would like to have linear scaling, i.e. $T_N \sim T_0/N_p$ for
|
||||||
|
@ -2900,7 +2910,7 @@ the "'" in the definitions of PARA\_PREFIX and PARA\_POSTFIX.
|
||||||
(parallel execution)}
|
(parallel execution)}
|
||||||
If the code looks like it is not reading from input, maybe
|
If the code looks like it is not reading from input, maybe
|
||||||
it isn't: the MPI libraries need to be properly configured to accept input
|
it isn't: the MPI libraries need to be properly configured to accept input
|
||||||
redirection. See section "Running on parallel machines", or inquire with
|
redirection. See Sec.\ref{SubSec:para}, or inquire with
|
||||||
your local computer wizard (if any).
|
your local computer wizard (if any).
|
||||||
|
|
||||||
\subsection{pw.x stops with error while reading data}
|
\subsection{pw.x stops with error while reading data}
|
||||||
|
@ -3482,7 +3492,7 @@ the generation of the PP is the same for all PP's. Note that
|
||||||
it is the hardest atom that determines the cutoff.
|
it is the hardest atom that determines the cutoff.
|
||||||
|
|
||||||
\paragraph{ ''Where can I find pseudopotentials for atom X?''}
|
\paragraph{ ''Where can I find pseudopotentials for atom X?''}
|
||||||
'''A:''' See the wiki page on [[Pseudopotentials]], follow those
|
'''A:''' See the Wiki page on [[Pseudopotentials]], follow those
|
||||||
links. New contributions to the PP table are appreciated.
|
links. New contributions to the PP table are appreciated.
|
||||||
If X is one of the rare earths: please consider first if DFT is
|
If X is one of the rare earths: please consider first if DFT is
|
||||||
suitable for your system!
|
suitable for your system!
|
||||||
|
|
Loading…
Reference in New Issue