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 @@
*.UPF
*.dSYM
*.a
*.in
*.out
doc/_build/
Modules/west_version.f90
west_make.inc
*/__pycache__
......@@ -26,13 +26,14 @@ stages:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR
- git describe
- ./configure LD_LIBS="`python3-config --ldflags`"
- ./configure
- make -j pw
- ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- git describe
- make
- make conf PYT=python3
- make all
- ls ../bin
.template_test:
......@@ -41,12 +42,13 @@ stages:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR
- git describe
- ./configure LD_LIBS="`python3-config --ldflags`"
- ./configure
- make -j pw
- ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- make > /dev/null
- make conf PYT=python3
- make all > /dev/null
- useradd -m qe
- cp -r test-suite /home/qe
- su - qe
......@@ -308,6 +310,6 @@ west_doc_build:
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- git describe
- cd doc
- cd Doc
- make html
- ls _build/html
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)
-------------------
......
import sys
import os
import shlex
#import shlex
import json
import sphinx_rtd_theme
from unittest.mock import MagicMock
#from unittest.mock import MagicMock
class Mock(MagicMock):
@classmethod
def __getattr__(cls, name):
if name == '_mock_methods':
return []
if name == 'version_tuple':
return (3,0)
return Mock()
#class Mock(MagicMock):
# @classmethod
# def __getattr__(cls, name):
# if name == '_mock_methods':
# return []
# if name == 'version_tuple':
# return (3,0)
# return Mock()
MOCK_MODULES = ['pymongo', 'gridfs', 'mpi4py']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
#MOCK_MODULES = ['pymongo', 'gridfs', 'mpi4py']
#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,
# add these directories to sys.path here. If the directory is relative to the
......@@ -55,8 +59,8 @@ source_suffix = '.rst'
master_doc = 'index'
# General information about the project.
project = u'west'
copyright = u'2019, Marco Govoni'
project = data["name"]
copyright = u'2020, Marco Govoni'
author = u'Marco Govoni'
# The version info for the project you're documenting, acts as replacement for
......@@ -64,7 +68,7 @@ author = u'Marco Govoni'
# built documents.
#
# The short X.Y version.
version = '4.1.0'
version = data["version"]
# The full version, including alpha/beta/rc tags.
release = version
......
......@@ -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
$ cd QEdir
$ 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 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``
$ cd QEdir
$ make pw
$ 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.
......
......@@ -38,13 +38,14 @@ WEST executables can be compiled using the following script:
export LAPACK_LIBS=${MY_LIB_PATH}/LAPACK/liblapack.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"
./configure --with-scalapack --enable-openmp LD_LIBS="`python3-config --ldflags`"
./configure --with-scalapack --enable-openmp
make -j 4 pw
cd West
make
make conf PYT=python3
make all
To use the script do:
......
......@@ -26,19 +26,20 @@ WEST executables can be compiled using the following script:
export CC=mpiicc
export MPIF90=mpiifort
export FC=mpiifort
export CFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl -Bdynamic"
export FFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl -Bdynamic"
export CFLAGS="-O3 -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=" -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
export LAPACK_LIBS_SWITCH="external"
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"
./configure --enable-parallel --with-scalapack --enable-openmp LD_LIBS="`python3-config --ldflags`"
./configure --enable-parallel --with-scalapack --enable-openmp
make -j 6 pw
cd West
make
make conf PYT=python3
make all
To use the script do:
......
......@@ -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/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
cd West
make
make conf PYT=python3
make all
To use the script do:
......@@ -49,7 +50,6 @@ The following is an example executable script `run_west.sh` to run the `wstat.x`
$ cat run_west.sh
#!/bin/bash
#COBALT -n 2
#COBALT -t 00:20:00
#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**
- 128
* - **Description**
- Number of frequecies used to sample the imaginary frequency axis in the range [0,ecut_imfreq].
.. data:: n_refreq
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 272
* - **Description**
- Number of frequecies used to sample the real frequency axis in the range [0,ecut_refreq].
.. data:: ecut_imfreq
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- dynamically se to the cutoff energy of the density, read from the ground state
* - **Description**
- Cutoff for the imaginary frequencies (in Ry).
.. data:: ecut_refreq
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- 2.0
* - **Description**
- Cutoff for the real frequencies (in Ry).
.. data:: wfreq_eta
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float
* - **Default**
- 0.05 / 13.6056980659
* - **Description**
- Energy shift of the poles (in Ry).
.. data:: n_secant_maxiter
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- int
* - **Default**
- 1
* - **Description**
- Maximum number of iterations in the secant solver.
.. data:: trev_secant
.. list-table::
:widths: 10 90
:stub-columns: 0
* - **Type**
- float