Commit a0f40aca authored by Marco Govoni's avatar Marco Govoni
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
......
This diff is collapsed.
# Makefile for the WEST software
default: all
include ../make.inc
default :
@echo "Welcome to WEST!"
@echo ' '
@echo 'to install WEST, type at the shell prompt:'
@echo ' make conf PYT=python-3'
@echo ' make [-j] target'
@echo ' '
@echo 'where target identifies one or multiple packages'
@echo ' wstat calculation of static dielectric response using PDEP'
@echo ' wfreq calculation of dynamical dielectric response and GW self-energy'
@echo ' westpp postprocessing programs'
@echo ' all same as "make wstat wfreq westpp"'
@echo ' '
@echo 'where target is one of the following operations:'
@echo ' doc build WEST documentation'
@echo ' '
@echo ' clean remove executables and objects'
@echo ' veryclean remove files produced by "configure" as well'
conf:
@[ "${PYT}" ] || ( echo ">> PYT is not set. Ex: make conf PYT=python3"; exit 1 )
@echo "Welcome to WEST!"
@echo ' '
@echo "version : `${PYT} ./Pytools/read_json.py VERSION.json version`"
@echo "url : `${PYT} ./Pytools/read_json.py VERSION.json url`"
@echo "license : `${PYT} ./Pytools/read_json.py VERSION.json license`"
@echo " " > west_make.inc
@echo WESTDIR=`pwd` >> west_make.inc
@echo PYT=${PYT} >> west_make.inc
@if [ -z "${PYT_LDFLAGS}" ] ; then echo PYT_LDFLAGS="`${PYT}-config --ldflags`" >> west_make.inc ; else echo PYT_LDFLAGS=${PYT_LDFLAGS} >> west_make.inc ; fi
@echo " "
@echo "Generated file: west_make.inc"
@cat west_make.inc
@echo " "
check_conf:
@[ -f "west_make.inc" ] || ( echo ">> Cannot find west_make.inc. Run: make conf PYT=python3"; exit 1 )
$(eval include ./west_make.inc)
report_build_vars :
@echo " "
@echo "##############"
@echo "# Build vars #"
@echo "##############"
@echo " "
@[ "${MPIF90}" ] || ( echo ">> MPIF90 is not set."; exit 1 )
@[ "${CC}" ] || ( echo ">> CC is not set."; exit 1 )
@echo "# WEST_VERSION_NUMBER : `${PYT} ./Pytools/read_json.py VERSION.json version`"
@echo "# WESTDIR : ${WESTDIR}"
@echo "# FDFLAGS : ${FDFLAGS}"
@echo "# IFLAGS : ${IFLAGS}"
@echo "# MOD_FLAG : ${MOD_FLAG}"
@echo "# MPIF90 : ${MPIF90}"
@echo "# CC : ${CC}"
@echo "# F77 : ${F77}"
@echo "# CPP : ${CPP}"
@echo "# CPPFLAGS : ${CPPFLAGS}"
@echo "# CFLAGS : ${CFLAGS}"
@echo "# F90FLAGS : ${F90FLAGS}"
@echo "# FFLAGS : ${FFLAGS}"
@echo "# FFLAGS_NOOPT : ${FFLAGS_NOOPT}"
@echo "# LD : ${LD}"
@echo "# LDFLAGS : ${LDFLAGS}"
@echo "# LD_LIBS : ${LD_LIBS}"
@echo "# BLAS_LIBS : ${BLAS_LIBS}"
@echo "# BLAS_LIBS_SWITCH : ${BLAS_LIBS_SWITCH}"
@echo "# LAPACK_LIBS : ${LAPACK_LIBS}"
@echo "# LAPACK_LIBS_SWITCH : ${LAPACK_LIBS_SWITCH}"
@echo "# SCALAPACK_LIBS : ${SCALAPACK_LIBS}"
@echo "# FFT_LIBS : ${FFT_LIBS}"
@echo "# MPI_LIBS : ${MPI_LIBS}"
@echo "# MASS_LIBS : ${MASS_LIBS}"
@echo "# AR : ${AR}"
@echo "# ARFLAGS : ${ARFLAGS}"
@echo "# RANLIB : ${RANLIB}"
@echo "# FLIB_TARGETS : ${FLIB_TARGETS}"
@echo "# LIBOBJS : ${LIBOBJS}"
@echo "# LIBS : ${LIBS}"
@echo "# WGET : ${WGET}"
@echo "# PYT : ${PYT}"
@echo "# PYT_LDFLAGS : ${PYT_LDFLAGS}"
@echo " "
pytools: \
check_conf \
report_build_vars \
pytools_do
wstat: \
libraries_do \
......@@ -15,19 +104,33 @@ io_kernel_do \
wstat_do
wfreq: \
pytools \
wstat \
wfreq_do
westpp: \
pytools \
wstat \
wfreq \
westpp_do
all: \
pytools \
wstat \
wfreq \
westpp
doc: check_conf
if test -d doc ; then \
( cd doc ; if test "$(MAKE)" = "" ; then make $(MFLAGS) html; \
else $(MAKE) $(MFLAGS) html ; fi ) ; fi
@echo 'Open the file: ${WESTDIR}/doc/_build/html/index.html'
pytools_do:
if test -d Pytools ; then \
( cd Pytools ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
else $(MAKE) $(MFLAGS) all ; fi ) ; fi
libraries_do:
if test -d Libraries ; then \
( cd Libraries ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
......@@ -35,7 +138,8 @@ libraries_do:
modules_do:
if test -d Modules ; then \
( cd Modules ; sh update_west_version; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
( cd Modules ; sh ./update_west_version ${WESTDIR} `${PYT} ../Pytools/read_json.py ../VERSION.json version`; \
if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
else $(MAKE) $(MFLAGS) all ; fi ) ; fi
tools_do:
......@@ -75,20 +179,21 @@ io_kernel_do:
wstat_do:
if test -d Wstat ; then \
( cd Wstat ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
else $(MAKE) $(MFLAGS) all ; fi ) ; fi
( cd Wstat ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; \
else $(MAKE) $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; fi ) ; fi
wfreq_do:
if test -d Wfreq ; then \
( cd Wfreq ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
else $(MAKE) $(MFLAGS) all ; fi ) ; fi
( cd Wfreq ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; \
else $(MAKE) $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; fi ) ; fi
westpp_do:
if test -d Westpp ; then \
( cd Westpp ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all; \
else $(MAKE) $(MFLAGS) all ; fi ) ; fi
( cd Westpp ; if test "$(MAKE)" = "" ; then make $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; \
else $(MAKE) $(MFLAGS) all PYT_LDFLAGS="${PYT_LDFLAGS}"; fi ) ; fi
clean: \
pytools_undo \
libraries_undo \
modules_undo \
tools_undo \
......@@ -102,6 +207,11 @@ wstat_undo \
wfreq_undo \
westpp_undo
pytools_undo:
if test -d Pytools ; then \
( cd Pytools ; if test "$(MAKE)" = "" ; then make clean ; \
else $(MAKE) clean ; fi ) ; fi
libraries_undo:
if test -d Libraries ; then \
( cd Libraries ; if test "$(MAKE)" = "" ; then make clean ; \
......@@ -162,4 +272,8 @@ westpp_undo:
( cd Westpp ; if test "$(MAKE)" = "" ; then make clean ; \
else $(MAKE) clean ; fi ) ; fi
distclean: clean
unconf:
[ -f "west_make.inc" ] && ( rm west_make.inc )
veryclean: clean \
unconf
# Makefile for Modules
include ../west_make.inc
include ../../make.inc
# location of needed modules
......@@ -12,18 +13,20 @@ IFLAGS=
MODULES_OBJS = \
west_version.o \
westcom.o
westcom.o \
PWOBJS = ../../PW/src/libpw.a
QEMODS = ../../Modules/libqemod.a ../../FFTXlib/libqefft.a ../../LAXlib/libqela.a ../Libraries/Forpy/libforpy.a
TLDEPS= bindir mods libs pw
all : title tldeps libmodules.a
all: title tldeps update libmodules.a
tldeps:
test -n "$(TLDEPS)" && ( cd ../.. ; $(MAKE) $(MFLAGS) $(TLDEPS) || exit 1) || :
./update_west_version ${TOPDIR}
update:
./update_west_version ${WESTDIR} `${PYT} ../Pytools/read_json.py ../VERSION.json version`
libmodules.a : $(MODULES_OBJS)
$(AR) $(ARFLAGS) $@ $?
......
#!/bin/sh
top_dir=$1
echo "TOPDIR = " $top_dir
westdir_=$1
echo "WESTDIR = " $westdir_
west_version_number_=$2
echo "WEST_VERSION_NUMBER = " $west_version_number_
# check if svn info available (do not write anything)
git remote -v 2> /dev/null > /dev/null
......@@ -16,7 +19,7 @@ fi
echo "GITREV = " $git_rev
# write svn into file version_tmp.f90
cat west_version.f90.in | sed "s/unknown/$git_rev/;s&unset&$top_dir&" > west_version.f90.tmp
cat west_version.f90.in | sed "s,checkit,${west_version_number_},;s/unknown/$git_rev/;s&unset&${westdir_}&" > west_version.f90.tmp
# check if a previous version.f90 file exists
if test -f west_version.f90 ; then
......
......@@ -20,9 +20,9 @@ MODULE west_version
!
SAVE
!
CHARACTER (LEN=6) :: west_version_number = '4.1.0'
CHARACTER (LEN=6) :: west_version_number = 'checkit'
CHARACTER (LEN=512) :: west_git_revision = 'unknown'
CHARACTER (LEN=512) :: west_forpy_path = 'unset'
CHARACTER (LEN=512) :: west_topdir = 'unset'
TYPE(list) :: paths
!
CONTAINS
......@@ -38,7 +38,7 @@ MODULE west_version
IERR = get_sys_path(paths)
IF(IERR/=0) CALL errore('forpy','Err: cannot get_sys_path',1)
!
IERR = paths%append(TRIM(ADJUSTL(west_forpy_path))//"West/Pytools")
IERR = paths%append(TRIM(ADJUSTL(west_topdir))//"/Pytools")
IF(IERR/=0) CALL errore('forpy','Err: cannot append paths',1)
END SUBROUTINE
!
......
#PYT=python3
include ../west_make.inc
all: \
title \
install
install:
- ${PYT} setup.py install --user --prefix= --record files.txt
clean:
- rm -rf west.egg-info
- rm -rf build
- rm -rf dist
- rm files.txt
title :
@echo " "
@echo "##############"
@echo "### Pytools ##"
@echo "##############"
@echo " "
......@@ -64,7 +64,7 @@ default["wfreq_control"]["ecut_spectralf"] = [-2., 1.]
default["wfreq_control"]["n_spectralf"] = 204
# westpp_control
default["westpp_control"] = {}
default["westpp_control"]["westpp_calculation"] = "r"
default["westpp_control"]["westpp_calculation"] = "R"
default["westpp_control"]["westpp_range"] = [1, 2]
default["westpp_control"]["westpp_format"] = "C"
default["westpp_control"]["westpp_sign"] = False
......
{
"name" : "WEST",
"version" : "4.2.0",
"url" : "http://west-code.org",
"license" : "GPLv3"
}
......@@ -51,7 +51,7 @@ all : title tldeps westpp.x
westpp.x : $(PWOBJS) $(WESTPP_OBJS) $(QEMODS) $(LIBOBJS)
$(LD) $(LDFLAGS) -o westpp.x \
$(WESTPP_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS)
$(WESTPP_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS) ${PYT_LDFLAGS}
- ( cd ../../bin ; ln -fs ../West/Westpp/westpp.x . )
tldeps:
test -n "$(TLDEPS)" && ( cd ../.. ; $(MAKE) $(MFLAGS) $(TLDEPS) || exit 1) || :
......
......@@ -100,7 +100,7 @@ all : title tldeps wfreq.x
wfreq.x : $(PWOBJS) $(WFREQ_OBJS) $(QEMODS) $(LIBOBJS)
$(LD) $(LDFLAGS) -o wfreq.x \
$(WFREQ_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS)
$(WFREQ_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS) ${PYT_LDFLAGS}
- ( cd ../../bin ; ln -fs ../West/Wfreq/wfreq.x . )
tldeps:
test -n "$(TLDEPS)" && ( cd ../.. ; $(MAKE) $(MFLAGS) $(TLDEPS) || exit 1) || :
......
......@@ -49,7 +49,7 @@ all : title tldeps wstat.x
wstat.x : $(PWOBJS) $(WSTAT_OBJS) $(QEMODS) $(LIBOBJS)
$(LD) $(LDFLAGS) -o wstat.x \
$(WSTAT_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS)
$(WSTAT_OBJS) $(WESTLIBS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBS) $(PYT_LDFLAGS)
- ( cd ../../bin ; ln -fs ../West/Wstat/wstat.x . )
tldeps:
test -n "$(TLDEPS)" && ( cd ../.. ; $(MAKE) $(MFLAGS) $(TLDEPS) || exit 1) || :
......
.. _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
:type: string
:default: "calc"
:description: Prefix prepended to the QuantumEspresso save folder.
.. data:: west_prefix
:type: string
:default: "west"
:description: Prefix prepended to the WEST save and restart folder.
.. data:: outdir
:type: string
:default: Value of the ESPRESSO_TMPDIR environment variable if set; current directory ("./") otherwise
:description: Input, temporary, output files are found in this directory.
|
-------------
wstat_control
-------------
.. data:: wstat_calculation
: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 is outsourced to a server
.. data:: n_pdep_eigen
:type: int
:default: 1
:description: Number of PDEP eigenpotentials.
.. data:: n_pdep_times
:type: int
:default: 4
:description: Maximum dimension of the search space = n_pdep_eigen * n_pdep_times.
.. data:: n_pdep_maxiter
:type: int
:default: 100
:description: Maximum number of iterations in PDEP.
.. data:: n_dfpt_maxiter
:type: int
:default: 250
:description: Maximum number of iterations in DFPT.
.. data:: n_pdep_read_from_file
:type: int
:default: 0
:description: Number of PDEP eigenpotentials that can be read from file.
.. data:: trev_pdep
:type: float
:default: 0.001
:description: Absolute convergence threshold in the PDEP eigenvalues.
.. data:: trev_pdep_rel
:type: float
:default: 0.1
:description: Relative convergence threshold in the PDEP eigenvalues.
.. data:: tr2_dfpt
:type: float
:default: 1e-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_minimize_exx_if_active
:type: boolean
:default: False
:description: If (True), then the exact-exchange term in the Hamiltonian is computed with the cutoff of the wavefunction.
.. data:: l_kinetic_only
:type: boolean
:default: False
:description: If (True), then only the kinetic term in the Hamiltonian is kept.
.. data:: l_use_ecutrho
:type: boolean
:default: False
:description: If (True), then the eigenpotentials are represented with ecutrho instead of ecutwfc.
.. data:: qlist
:type: list of int
:default: [1,2,...,number of q-points]
:description: List of q-points to compute.
|
-------------
wfreq_control
-------------
.. data:: wfreq_calculation
: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
:type: int
:default: 2
: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
:type: list of int
:default: [1,2]
:description: Compute the QP corrections from band qp_bandrange[0] to band qp_bandrange[1].
.. data:: macropol_calculation
: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
:type: int
:default: 30
:description: Number of Lanczos chains.
.. data:: n_imfreq
:type: int
:default: 128
:description: Number of frequecies used to sample the imaginary frequency axis in the range [0,ecut_imfreq].
.. data:: n_refreq
:type: int
:default: 10
:description: Number of frequecies used to sample the real frequency axis in the range [0,ecut_refreq].
.. data:: ecut_imfreq
:type: float
:default: Cut of the density, read from the ground state
:description: Cutoff for the imaginary frequencies (in Ry).
.. data:: ecut_refreq
:type: float
:default: 2.0
:description: Cutoff for the real frequencies (in Ry).
.. data:: wfreq_eta