Commit a0f40aca authored by Marco Govoni's avatar Marco Govoni
Browse files
parents 5ddaee08 598316f6
Pipeline #2168 passed with stages
in 13 minutes and 25 seconds
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
*.UPF *.UPF
*.dSYM *.dSYM
*.a *.a
*.in
*.out *.out
doc/_build/ doc/_build/
Modules/west_version.f90 Modules/west_version.f90
west_make.inc
*/__pycache__ */__pycache__
...@@ -26,13 +26,14 @@ stages: ...@@ -26,13 +26,14 @@ stages:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR - cd QEDIR
- git describe - git describe
- ./configure LD_LIBS="`python3-config --ldflags`" - ./configure
- make -j pw - make -j pw
- ls bin - ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West - cd West
- git describe - git describe
- make - make conf PYT=python3
- make all
- ls ../bin - ls ../bin
.template_test: .template_test:
...@@ -41,12 +42,13 @@ stages: ...@@ -41,12 +42,13 @@ stages:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR - cd QEDIR
- git describe - git describe
- ./configure LD_LIBS="`python3-config --ldflags`" - ./configure
- make -j pw - make -j pw
- ls bin - ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West - cd West
- make > /dev/null - make conf PYT=python3
- make all > /dev/null
- useradd -m qe - useradd -m qe
- cp -r test-suite /home/qe - cp -r test-suite /home/qe
- su - qe - su - qe
...@@ -308,6 +310,6 @@ west_doc_build: ...@@ -308,6 +310,6 @@ west_doc_build:
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West - cd West
- git describe - git describe
- cd doc - cd Doc
- make html - make html
- ls _build/html - ls _build/html
Change Log Change Log
========== ==========
v4.2.0 (2020/07/03)
-------------------
- Introduced automatic installation of missing python packages
- Introduced the conf layer in the Makefile to ease installation
- Updated manual
v4.1.0 (2019/10/18) v4.1.0 (2019/10/18)
------------------- -------------------
......
import sys import sys
import os import os
import shlex #import shlex
import json
import sphinx_rtd_theme import sphinx_rtd_theme
from unittest.mock import MagicMock #from unittest.mock import MagicMock
class Mock(MagicMock): #class Mock(MagicMock):
@classmethod # @classmethod
def __getattr__(cls, name): # def __getattr__(cls, name):
if name == '_mock_methods': # if name == '_mock_methods':
return [] # return []
if name == 'version_tuple': # if name == 'version_tuple':
return (3,0) # return (3,0)
return Mock() # return Mock()
MOCK_MODULES = ['pymongo', 'gridfs', 'mpi4py'] #MOCK_MODULES = ['pymongo', 'gridfs', 'mpi4py']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) #sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
with open('../VERSION.json',"r") as file:
data = json.load(file)
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
...@@ -55,8 +59,8 @@ source_suffix = '.rst' ...@@ -55,8 +59,8 @@ source_suffix = '.rst'
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
project = u'west' project = data["name"]
copyright = u'2019, Marco Govoni' copyright = u'2020, Marco Govoni'
author = u'Marco Govoni' author = u'Marco Govoni'
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
...@@ -64,7 +68,7 @@ author = u'Marco Govoni' ...@@ -64,7 +68,7 @@ author = u'Marco Govoni'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '4.1.0' version = data["version"]
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = version release = version
......
...@@ -14,7 +14,7 @@ Configure QuantumEspresso by running the ``configure`` script that comes with th ...@@ -14,7 +14,7 @@ Configure QuantumEspresso by running the ``configure`` script that comes with th
$ git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEdir $ git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEdir
$ cd QEdir $ cd QEdir
$ git clone -b 'v4.1.0' --single-branch --depth 1 http://greatfire.uchicago.edu/west-public/West.git West $ git clone -b 'v4.1.0' --single-branch --depth 1 http://greatfire.uchicago.edu/west-public/West.git West
$ ./configure LD_LIBS="`python3-config --ldflags`" $ ./configure
.. note:: .. note::
Note that since v4.0.0 WEST requires dynamic linking and python3. Note that since v4.0.0 WEST requires dynamic linking and python3.
...@@ -26,7 +26,8 @@ It's now time to create the ``pw.x``, ``wstat.x``, ``wfreq.x``, and ``westpp.x`` ...@@ -26,7 +26,8 @@ It's now time to create the ``pw.x``, ``wstat.x``, ``wfreq.x``, and ``westpp.x``
$ cd QEdir $ cd QEdir
$ make pw $ make pw
$ cd QEdir/West $ cd QEdir/West
$ make $ make conf PYT=python3
$ make all
You have succefully installed QuantumEspresso and WEST if you see the executables ``pw.x``, ``wstat.x``, ``wfreq.x``, and ``westpp.x`` created in the QEdir/bin directory. You have succefully installed QuantumEspresso and WEST if you see the executables ``pw.x``, ``wstat.x``, ``wfreq.x``, and ``westpp.x`` created in the QEdir/bin directory.
......
...@@ -38,13 +38,14 @@ WEST executables can be compiled using the following script: ...@@ -38,13 +38,14 @@ WEST executables can be compiled using the following script:
export LAPACK_LIBS=${MY_LIB_PATH}/LAPACK/liblapack.a export LAPACK_LIBS=${MY_LIB_PATH}/LAPACK/liblapack.a
export SCALAPACK_LIBS=${MY_LIB_PATH}/SCALAPACK/libscalapack.a export SCALAPACK_LIBS=${MY_LIB_PATH}/SCALAPACK/libscalapack.a
export FFT_LIBS="${MY_LIB_PATH}/FFTW3/lib/libfftw3.a ${MY_LIB_PATH}/FFTW3/lib/libfftw3_omp.a" export FFT_LIBS="${MY_LIB_PATH}/FFTW3/lib/libfftw3.a ${MY_LIB_PATH}/FFTW3/lib/libfftw3_omp.a"
./configure --with-scalapack --enable-openmp LD_LIBS="`python3-config --ldflags`" ./configure --with-scalapack --enable-openmp
make -j 4 pw make -j 4 pw
cd West cd West
make make conf PYT=python3
make all
To use the script do: To use the script do:
......
...@@ -26,19 +26,20 @@ WEST executables can be compiled using the following script: ...@@ -26,19 +26,20 @@ WEST executables can be compiled using the following script:
export CC=mpiicc export CC=mpiicc
export MPIF90=mpiifort export MPIF90=mpiifort
export FC=mpiifort export FC=mpiifort
export CFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl -Bdynamic" export CFLAGS="-O3 -fno-alias -ansi-alias -g -mkl -Bdynamic"
export FFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl -Bdynamic" export FFLAGS="-O3 -fno-alias -ansi-alias -g -mkl -Bdynamic"
export BLAS_LIBS_SWITCH="external" export BLAS_LIBS_SWITCH="external"
export BLAS_LIBS=" -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" export BLAS_LIBS=" -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
export LAPACK_LIBS_SWITCH="external" export LAPACK_LIBS_SWITCH="external"
export LAPACK_LIBS=" " export LAPACK_LIBS=" "
export SCALAPACK_LIBS=" -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group" export SCALAPACK_LIBS=" -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group"
./configure --enable-parallel --with-scalapack --enable-openmp LD_LIBS="`python3-config --ldflags`" ./configure --enable-parallel --with-scalapack --enable-openmp
make -j 6 pw make -j 6 pw
cd West cd West
make make conf PYT=python3
make all
To use the script do: To use the script do:
......
...@@ -27,12 +27,13 @@ WEST executables can be compiled using the following script: ...@@ -27,12 +27,13 @@ WEST executables can be compiled using the following script:
export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/lib/intel64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/lib/intel64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/python/3.6.5.3/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/python/3.6.5.3/lib:$LD_LIBRARY_PATH
./configure MPIF90=ftn CC=cc CXX=CC --enable-openmp=yes --enable-parallel=yes --enable-shared=yes --with-scalapack=intel SCALAPACK_LIBS="${MKLROOT}/lib/intel64/libmkl_scalapack_lp64.so -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.so ${MKLROOT}/lib/intel64/libmkl_intel_thread.so ${MKLROOT}/lib/intel64/libmkl_core.so ${MKLROOT}/lib/intel64/libmkl_blacs_intelmpi_lp64.so -Wl,--end-group" FFLAGS=" -xMIC-AVX512 -qopenmp -align array64byte -fp-model fast=2 -no-prec-div -assume byterecl" --with-hdf5=no CFLAGS=" -xMIC-AVX512" LDFLAGS=" -shared-intel -qopenmp" LD_LIBS="`python3-config --ldflags`" ./configure MPIF90=ftn CC=cc CXX=CC --enable-openmp=yes --enable-parallel=yes --enable-shared=yes --with-scalapack=intel SCALAPACK_LIBS="${MKLROOT}/lib/intel64/libmkl_scalapack_lp64.so -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.so ${MKLROOT}/lib/intel64/libmkl_intel_thread.so ${MKLROOT}/lib/intel64/libmkl_core.so ${MKLROOT}/lib/intel64/libmkl_blacs_intelmpi_lp64.so -Wl,--end-group" FFLAGS=" -xMIC-AVX512 -qopenmp -align array64byte -fp-model fast=2 -no-prec-div -assume byterecl" --with-hdf5=no CFLAGS=" -xMIC-AVX512" LDFLAGS=" -shared-intel -qopenmp"
make pw -j 16 make pw -j 16
cd West cd West
make make conf PYT=python3
make all
To use the script do: To use the script do:
...@@ -49,7 +50,6 @@ The following is an example executable script `run_west.sh` to run the `wstat.x` ...@@ -49,7 +50,6 @@ The following is an example executable script `run_west.sh` to run the `wstat.x`
$ cat run_west.sh $ cat run_west.sh
#!/bin/bash #!/bin/bash
#COBALT -n 2 #COBALT -n 2
#COBALT -t 00:20:00 #COBALT -t 00:20:00
#COBALT -q debug-cache-quad #COBALT -q debug-cache-quad
......
.. _Manual:
Manual
======
The complete **WEST** reference for input parameters.
.. contents:: :local:
:depth: 1
.. note::
Not all input parameters listed below are mandatory. Check :ref:`quickreference` or :ref:`tutorial` pages to see examples of input files.
.. seealso::
**WESTpy** is a Python package, designed to assist users of the WEST code in pre- and post-process massively parallel calculations. Click `here <http://www.west-code.org/doc/westpy/latest/>`_ to know more.
.. seealso::
The input file is given according to the YAML Notation (`https://yaml.org/ <https://yaml.org//>`_).
|
----------
input_west
----------
.. data:: qe_prefix
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "pwscf"
* - **Description**
- Prefix prepended to the QuantumEspresso save folder.
.. data:: west_prefix
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "west"
* - **Description**
- Prefix prepended to the WEST save and restart folders.
.. data:: outdir
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "./"
* - **Description**
- Directory for: input, temporary, and output files.
|
-------------
wstat_control
-------------
.. data:: wstat_calculation
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "S"
* - **Description**
- Available options are:
- "S" : Start from scratch.
- "R" : Restart from an interrupted run. You should restart with the same number of cores, and images.
- "E" : Calculation of the response is external, i.e. outsourced to a server.
.. data:: n_pdep_eigen
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- dynamically set to match the number of electrons
* - **Description**
- Number of PDEP eigenpotentials.
.. data:: n_pdep_times
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 4
* - **Description**
- Maximum dimension of the search space = n_pdep_eigen * n_pdep_times.
.. data:: n_pdep_maxiter
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 100
* - **Description**
- Maximum number of iterations in PDEP.
.. data:: n_dfpt_maxiter
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 250
* - **Description**
- Maximum number of iterations in DFPT.
.. data:: n_pdep_read_from_file
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 0
* - **Description**
- Number of PDEP eigenpotentials that can be read from file.
.. data:: trev_pdep
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- 0.001
* - **Description**
- Absolute convergence threshold for PDEP eigenvalues.
.. data:: trev_pdep_rel
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- 0.1
* - **Description**
- Relative convergence threshold for PDEP eigenvalues.
.. data:: tr2_dfpt
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- 1.e-12
* - **Description**
- Convergence threshold in DFPT. Note that in the first PDEP iterations a reduced threshold for DFPT could be used by the code in order to speed up the computation.
.. data:: l_kinetic_only
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- bool
* - **Default**
- False
* - **Description**
- If (True), then only the kinetic term in the Hamiltonian is kept.
.. data:: l_minimize_exx_if_active
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- bool
* - **Default**
- False
* - **Description**
- If (True), then the exact-exchange term in the Hamiltonian is computed with the cutoff of the wavefunction.
.. data:: l_use_ecutrho
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- bool
* - **Default**
- False
* - **Description**
- If (True), then the eigenpotentials are represented with ecutrho instead of ecutwfc.
.. data:: qlist
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- list of int
* - **Default**
- [1,2,...,number of q-points]
* - **Description**
- List of q-points to compute.
|
-------------
wfreq_control
-------------
.. data:: wfreq_calculation
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "XWGQ"
* - **Description**
- Available options are:
- "XWGQ" : Compute the QP corrections.
- "XwGQ" : Compute the QP corrections, restart from an interrupted / just read W run.
- "XwgQ" : Compute the QP corrections, restart from an interrupted / just read G run.
- "X" : Compute the HF corrections.
- "XWO" : Compute the optical properties.
- "XWGQP" : Compute the QP corrections, and plot spectral functions.
- "XWGQOP" : Compute all.
.. data:: n_pdep_eigen_to_use
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- dynamically set to match the number of electrons
* - **Description**
- Number of PDEP eigenvectors to use in Wfreq. They are read from previous Wstat run. This value cannot exceed n_pdep_eigen (defined in wstat_control) and is used to check the convergence of the calculation.
.. data:: qp_bandrange
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- 2-dim list of int
* - **Default**
- [1,2]
* - **Description**
- Compute the QP corrections from band qp_bandrange[0] to band qp_bandrange[1].
.. data:: macropol_calculation
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- string
* - **Default**
- "N"
* - **Description**
- Available options are:
- "N" : None. Choice valid for isolated systems.
- "C" : Include long-wavelength limit. Choice valid for condensed systems.
.. data:: n_lanczos
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 30
* - **Description**
- Number of Lanczos chains.
.. data:: n_imfreq
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**