Skip to content

Commit

Permalink
Cleanups in manual and dftParameters
Browse files Browse the repository at this point in the history
  • Loading branch information
dsambit committed Jul 16, 2018
1 parent 8e3aebf commit 0c91ba3
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 24 deletions.
5 changes: 0 additions & 5 deletions doc/manual/contributing.tex

This file was deleted.

24 changes: 12 additions & 12 deletions doc/manual/installation.tex
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
All the underlying installation instructions assume a Linux operating system. Also standard tools and libraries like CMake, compilers- (C, C++ and Fortran), and MPI libraries are assumed to be pre-installed. Most high-performance computers would have the latest version of these libraries in the default environment. However, in many cases you would have to use \href{http:https://modules.sourceforge.net/}{Environment Modules} to set the correct environment variables for compilers-(C, C++ and Fortran), MPI libraries, and compilation tools like \href{http:https://www.cmake.org/}{CMake}. For example, on one of the high-performance computers we use to develop and test the \dftfe{} code, we use the following commands to set the desired environment variables
All the underlying installation instructions assume a Linux operating system. Also standard tools and libraries like CMake, compilers- (C, C++ and Fortran), and MPI libraries are assumed to be pre-installed. Most high-performance computers would have the latest version of these libraries in the default environment. However, in many cases you would have to use \href{http:https://modules.sourceforge.net/}{Environment Modules} to set the correct environment variables for compilers-(C, C++ and Fortran), MPI libraries, and compilation tools like \href{http:https://www.cmake.org/}{CMake}. For example, on one of the high-performance computers we develop and test the \dftfe{} code, we use the following commands to set the desired environment variables
\begin{verbatim}
$ module load cmake
$ module load intel/18.0.1
$ module load openmpi/3.0.0/intel/18.0.1
\end{verbatim}
We strongly recommend using the latest stable version of compilers-(C, C++ and Fortran), and MPI libraries (only for \dftfe{} and external libraries which require MPI) available on your high-performance computer. Furthermore, the installations which use \href{http:https://www.cmake.org/}{CMake}, version 2.8.12 or later is required.
We strongly recommend using the latest stable version of compilers-(C, C++ and Fortran), and MPI libraries available on your high-performance computer. Furthermore, for the installations which use \href{http:https://www.cmake.org/}{CMake}, version 2.8.12 or later is required.

\subsection{Compiling and installing external libraries}
\dftfe{} is primarily based on the open source finite element library \href{http:https://www.dealii.org/}{deal.II}, through which external dependencies
on \href{http:https://p4est.org/}{p4est}, \href{https://www.mcs.anl.gov/petsc/}{PETSc}, \href{http:https://slepc.upv.es/}{SLEPc}, and \href{http:https://www.netlib.org/scalapack/}{ScaLAPACK}. ScaLAPACK is an optional requirement, but strongly recommended for large problem sizes with 5000 electrons or more. The other required external libraries, which are
on \href{http:https://p4est.org/}{p4est}, \href{https://www.mcs.anl.gov/petsc/}{PETSc}, \href{http:https://slepc.upv.es/}{SLEPc}, and \href{http:https://www.netlib.org/scalapack/}{ScaLAPACK} are set. ScaLAPACK is an optional requirement, but strongly recommended for large problem sizes with 5000 electrons or more. The other required external libraries, which are
not interfaced via deal.II are \href{http:https://www.alglib.net/}{ALGLIB}, \href{http:https://www.tddft.org/programs/libxc/}{Libxc}, \href{https://atztogo.github.io/spglib/}{spglib}, and \href{http:https://www.xmlsoft.org/}{Libxml2}. Some of the above libraries (PETSc, SLEPc, ScaLAPACK, and Libxml2) are already installed on most high-performance computers. Below, we give brief installation and/or linking instructions for each of the above libraries.

\subsubsection{Instructions for deal.II's dependencies p4est, PETSc, SLEPc, and ScaLAPACK}
Expand Down Expand Up @@ -52,7 +52,7 @@ \subsubsection{Instructions for deal.II's dependencies p4est, PETSc, SLEPc, and
\end{verbatim}
Please notice that we have used place holders for values of some of the above configuration flags. You have to use the correct values specific to the compilers and MPI libraries you are working with, and based on compiling recommendations for the high-performance computer you are working with. For example, if using Intel compilers and Intel MKL for blas-lapack, it is {\bf very important} to use \href{https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor}{Intel MKL Link Line Advisor} to set the appropriate path for \verb|--with-blas-lapack-lib|, something like
\begin{verbatim}
$ --with-blas-lapack-lib="-Wl,--start-group
--with-blas-lapack-lib="-Wl,--start-group
${MKLROOT}/lib/intel64/libmkl_intel_lp64.a
${MKLROOT}/lib/intel64/libmkl_intel_thread.a
${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group
Expand All @@ -63,7 +63,7 @@ \subsubsection{Instructions for deal.II's dependencies p4est, PETSc, SLEPc, and

\item {\bf SLEPc}: The SLEPc library is built on top of PETSc, and it is used for solution of large scale sparse eigenvalue problems on parallel computers. To install SLEPc, first download the latest release tarball from \url{http:https://slepc.upv.es/download/}, and then follow the installation procedure described in \url{http:https://slepc.upv.es/documentation/instal.htm}. {\bf Important: } SLEPc installation requires PETSc to be installed first. You also need to create two separate SLEPc installations- one for PETSc installed with \verb|--with-scalar-type=real|, and the second for PETSc installed with \verb|--with-scalar-type=complex|.

\item {\bf ScaLAPACK}: ScaLAPACK library is used by DFT-FE via deal.II for its parallel linear algebra routines for solving dense linear systems. Installation of ScaLAPACK will not be required in most cases, as most high-performance computers would have ScaLAPACK already installed in the system. For example, in case of Intel MKL the paths for ScaLAPACK and BLACS (ScaLAPACK requires this) libraries would be something like (obtained via \href{https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor}{Intel MKL Link Line Advisor})
\item {\bf ScaLAPACK}: ScaLAPACK library is used by DFT-FE via deal.II for its parallel linear algebra routines for solving dense linear systems. ScaLAPACK already installed in most high-performance computers. For example, in case of Intel MKL the paths for ScaLAPACK and BLACS (ScaLAPACK requires this) libraries would be something like (obtained via \href{https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor}{Intel MKL Link Line Advisor})
\begin{verbatim}
${MKLROOT}/lib/intel64/libmkl_scalapack_lp64.so
${MKLROOT}/lib/intel64/libmkl_blacs_intelmpi_lp64.so
Expand All @@ -80,21 +80,21 @@ \subsubsection{Instructions for deal.II}
Assuming the above dependencies are installed, we now briefly discuss the steps to compile and install the deal.II library linked with the above dependencies:
\begin{enumerate}

\item Obtain the latest release version of deal.II by downloading and unpacking the .tar.gz file from \url{https://www.dealii.org/download.html}. Alternatively (recommended as certain performance enhancements specific to \dftfe{} are missing in the latest release version), you may obtain the forked development version of deal.II library via
\item Obtain the latest release version of deal.II by downloading and unpacking the .tar.gz file from \url{https://www.dealii.org/download.html}. Alternatively (recommended as certain performance enhancements specific to \dftfe{} are missing in the latest release version), you may obtain the development version of deal.II library forked by us via
\begin{verbatim}
$ git clone -b fixIntelCompilation https://github.com/dftfeDevelopers/dealii.git
\end{verbatim}
The above forked version has a minor fix which resolves compilation issues when using intel compilers. \textcolor{red}{Once this fix is available in the deal.II development repository, users can obtain the development version of deal.II library via}
The above forked version has a minor fix which resolves compilation issues when using Intel compilers. \textcolor{red}{Once this fix is available in the deal.II development repository, users can obtain the development version of deal.II library via}
\begin{verbatim}
$ git clone https://github.com/dealii/dealii.git
\end{verbatim}


\item
\begin{verbatim}
mkdir build
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir otherCmakeOptions ../deal.II
$ cmake -DCMAKE_INSTALL_PREFIX=dealii_install_dir_path otherCmakeOptions ../deal.II
$ make install
\end{verbatim}
``otherCmakeOptions'' {\bf must include} the following options
Expand All @@ -105,7 +105,7 @@ \subsubsection{Instructions for deal.II}
\end{verbatim}
and LAPACK and ScaLAPACK link options.
\end{enumerate}
Below we provide an example of deal.II installation, which we did on a high-performance computer (\href{https://www.tacc.utexas.edu/systems/stampede2}{STAMPEDE2}) using Intel compilers and Intel MPI library
For your reference, below we provide an example of deal.II installation, which we did on a high-performance computer (\href{https://www.tacc.utexas.edu/systems/stampede2}{STAMPEDE2}) using Intel compilers and Intel MPI library
\begin{verbatim}
$ mkdir build
$ cd build
Expand Down Expand Up @@ -162,9 +162,9 @@ \subsubsection{Instructions for ALGLIB, Libxc, spglib, and Libxml2}
\subsection{Obtaining and Compiling \dftfe{}}
Assuming that you have already installed the above external dependencies, next follow the steps below to obtain and compile \dftfe{}.
\begin{enumerate}
\item Download the source code of the latest release of \dftfe{} from \href{wesbite}{here}. After downloading, unpack the file using the command
\item Download the source code of the latest release of \dftfe{} from \href{https://sites.google.com/umich.edu/dftfe/download}{here}. After downloading, unpack the file using the command
\begin{verbatim}
$ tar -zxvf dftfe-0.5.0.tar.gz
$ tar -zxvf dftfe-x.y.z.tar.gz
\end{verbatim}
For obtaining the development version, clone the development branch of our github repository directly on the command line via
\begin{verbatim}
Expand Down
4 changes: 0 additions & 4 deletions doc/manual/manual.tex
Original file line number Diff line number Diff line change
Expand Up @@ -194,10 +194,6 @@ \section{Running \dftfe}
\label{sec:run}
\input{rundftfe}

\section{Contributing to \dftfe{}'s development}
\label{sec:contributing}
\input{contributing}


\section{Future plans for \dftfe}
\label{sec:future}
Expand Down
2 changes: 1 addition & 1 deletion doc/manual/parameters.tex
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ \subsection{Parameters in section \tt DFT functional parameters}
{\it Default:} 0


{\it Description:} [Standard] Spin polarization: 0 for no spin polarization and 1 for spin polarization. Default option is 0.
{\it Description:} [Standard] Spin polarization: 0 for no spin polarization and 1 for collinear spin polarization calculation. Default option is 0.


{\it Possible values:} An integer $n$ such that $0\leq n \leq 1$
Expand Down
2 changes: 1 addition & 1 deletion doc/manual/rundftfe.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
After compiling \dftfe{} as described above, we have now the \verb|real/main| executable, which uses real data-structures for the Kohn-Sham DFT eigen solve. This is sufficient for fully non-periodic problems, and periodic and semi-periodic problems with only one Brillouin zone sampling point at the origin. The other executable is \verb|complex/main|, which uses complex data-structrues for the Kohn-Sham DFT eigen solve. This is required for periodic and semi-periodic problems with multiple Brillouin zone sampling points. These executables are to be used as follows:
After compiling \dftfe{} as described above in Section~\ref{sec:installation}, we have now the \verb|real/main| executable, which uses real data-structures for the Kohn-Sham DFT eigen solve. This is sufficient for fully non-periodic problems, and periodic and semi-periodic problems with only one Brillouin zone sampling point at the origin. The other executable is \verb|complex/main|, which uses complex data-structrues for the Kohn-Sham DFT eigen solve. This is required for periodic and semi-periodic problems with multiple Brillouin zone sampling points. These executables are to be used as follows:
\begin{verbatim}
./main parameterFile.prm
\end{verbatim}
Expand Down
2 changes: 1 addition & 1 deletion utils/dftParameters.cc
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ namespace dftParameters

prm.declare_entry("SPIN POLARIZATION", "0",
Patterns::Integer(0,1),
"[Standard] Spin polarization: 0 for no spin polarization and 1 for spin polarization. Default option is 0.");
"[Standard] Spin polarization: 0 for no spin polarization and 1 for collinear spin polarization calculation. Default option is 0.");

prm.declare_entry("START MAGNETIZATION", "0.0",
Patterns::Double(-0.5,0.5),
Expand Down

0 comments on commit 0c91ba3

Please sign in to comment.