mirror of https://gitlab.com/QEF/q-e.git
128 lines
4.7 KiB
Markdown
128 lines
4.7 KiB
Markdown
|
|
# Library of pseudopotential code
|
|
|
|
This directory contains the "upflib" library of pseudopotential-related code,
|
|
extracted from the Quantum ESPRESSO distribution. This library depends only
|
|
upon module mp.f90 of UtilXlib and upon a few modules and routines of devXlib;
|
|
upon a few LAPACK routines; requires a suitable `../make.inc` file in Makefile.
|
|
Other than this, it can be independently compiled.
|
|
|
|
Currently, upflib includes
|
|
- basic definitions of the UPF (Unified Pseudopotential File) format
|
|
- basic I/O operations on UPF files
|
|
- setup of the interpolation tables and of other basic variables
|
|
- interpolation of pseudopotentials
|
|
- generation of various pseudopotentials matrix elements
|
|
- utilities: spherical harmonics and Bessel functions, integration routines
|
|
|
|
The available information on pseudopotential formats can be found here:
|
|
https://gitlab.com/QEF/q-e/-/wikis/Developers/Format-of-pp-files
|
|
|
|
In addition to the `libupf.a` library, executable utilities are produced:
|
|
|
|
- `upfconv.x`, converting pseudopotentials in other formats into UPF:
|
|
see `upfconv.x -h` for more
|
|
|
|
- `virtual_v2.x`, courtesy Jingyang Wang (jw598@cornell.edu), generates
|
|
an averaged pseudopotential suitable for Virtual Crystal Approximation
|
|
|
|
- `casino2upf.x`, courtesy Mike Towler (see below)
|
|
|
|
A python script `fixfile.py` is also present, to remove undesired `&`
|
|
characters from UPF files that hinder their parsing by xml tools.
|
|
|
|
## CASINO and QE pseudopotentials
|
|
|
|
The following notes are kept for reference (they might be obsolete).
|
|
Code `upfconv.x -c` should replace code `upf2casino2.x` mentioned below.
|
|
Code `casino2upf.x` was moved to upflib/ and works (?) again, at least
|
|
for the example provided by Jake Muff, since v.6.8. Old notes start here:
|
|
|
|
Two utilities are provided with the Quantum Espresso distribution to
|
|
enable the PWscf code to be used in conjunction with the CASINO quantum
|
|
Monte Carlo code.
|
|
|
|
Of course all pseudopotentials generated via these automatic tools should
|
|
be tested before being used for production runs.
|
|
|
|
It should be noted that ultrasoft and PAW pseudopotentials cannot be used
|
|
with the CASINO code. Currently only UPF files containing norm-conserving
|
|
pseudopotentials can be converted using these utilities.
|
|
|
|
### casino2upf.x
|
|
|
|
The first of these is casino2upf.x . This utility takes a given CASINO
|
|
tabulated pseudopotential file and one or more awfn.data files specifying
|
|
the pseudoatomic wavefunctions to be used in creating the
|
|
Kleinman-Bylander projectors. A UPF file containing the projectors and the
|
|
local potential is then written to the file name specified in inputpp. Any
|
|
errors are communicated to the user via stderr.
|
|
|
|
Usage:
|
|
|
|
./casino2upf.x < inputpp
|
|
|
|
A sample inputpp file for converting a Trail and Needs pseudopotential
|
|
would be:
|
|
|
|
```
|
|
inputpp:
|
|
&inputpp
|
|
pp_data='pp.data'
|
|
upf_file='my_pseudo_potential.UPF'
|
|
/
|
|
3
|
|
awfn.data_s1_2S
|
|
awfn.data_p1_2P
|
|
awfn.data_d1_2D
|
|
```
|
|
|
|
Here pp_data specifies the name and location of the file containing the
|
|
CASINO pseudopotential. The utility then expects an input card after
|
|
&inputpp consisting of the number of awfn.data files supplied (in this
|
|
case 3) and then their names. The files are searched sequentially so the
|
|
first s wavefunction found will be used for the s projector, first p for
|
|
the p projector and so on.
|
|
|
|
|
|
*A note on the radial grid*
|
|
|
|
The utility currently performs no interpolation and attempts to use the
|
|
same radial grid as the original pseudopotential. It therefore assumes
|
|
that the grid will be of the standard form used by Trail and Needs.
|
|
|
|
If this is not the case the flag tn_grid=.false. can be set in the input
|
|
file. The standard logarithmic form, r(i)=exp(xmin + i*dx) / Z is then
|
|
assumed. Values for xmin and dx can also be specified in the input file in
|
|
the usual way.
|
|
|
|
If interpolation from a different non-standard grid is required then the
|
|
current recommended route is to use the casino2gon utility supplied with
|
|
the CASINO distribution. This produces the older GON format that is
|
|
(currently) still read by PWscf.
|
|
|
|
|
|
*Ghost states*
|
|
|
|
The Kleinman-Bylander form can unfortunately introduce ghost states into
|
|
some calculations. If this does occur we recommend that the
|
|
pseudopotential is re-converted using a different local channel. The local
|
|
channel can be specified in the original CASINO pp.data file and is read
|
|
in automatically by casino2upf.x .
|
|
|
|
### up2casino.x
|
|
|
|
This utility takes a standard UPF pseudopotential from standard input and
|
|
writes a CASINO tabulated pseudopotential file to standard output. Any
|
|
errors are communicated via stderr.
|
|
|
|
Usage:
|
|
|
|
./up2casino.x < pseudo.UPF > pp.data
|
|
|
|
Care must be taken that the resulting pseudopotential file spec fies the
|
|
required local channel. Also this utility should only be used with
|
|
norm-conserving pseudopotentials.
|
|
|
|
|