Added support for newer GTH pseudopotentials, thanks (once more) to Sebastiano

Caravati. Minor documentation updates.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12810 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
giannozz 2016-08-19 15:56:23 +00:00
parent 2a089c9c27
commit c005d7465b
3 changed files with 39 additions and 8 deletions

View File

@ -7,6 +7,8 @@ New in 6.0 version:
(Ivan Carnimeo)
* Improved real-space treatment of Q and beta functions with Fourier
filtering (Stefano de Gironcoli)
* Support for new, improved Goedecker-Hutter-Teter pseudopotentials
generated by Santana Saha (Sebastiano Caravati)
Fixed in 6.0 version:

View File

@ -1083,10 +1083,8 @@ Sliwa, April 2011).
The Intel compiler, ifort, is available for free for personal
usage (\texttt{http://software.intel.com/}). It produces fast executables,
at least on Intel CPUs, but not all versions work as expected.
ifort versions $<9.1$ are not recommended, due to the presence of subtle
and insidious bugs. In case of trouble, update your version with
the most recent patches,
at least on Intel CPUs, but not all versions work as expected (see below).
In case of trouble, update your version with the most recent patches,
available via Intel Premier support (registration free of charge for Linux):
\texttt{http://software.intel.com/en-us/articles/intel-software-developer-support}.
Since each major release of ifort
@ -1105,12 +1103,23 @@ The warning: {\em feupdateenv is not implemented and will always fail},
can be safely ignored. Warnings on "bad preprocessing option" when compiling
iotk and complains about ``recommanded formats'' may also be ignored.
The following compiler releases are known to give segmentation faults
in at least some cases of compilation of \qe\ v.6.0:
\begin{quote}
12.0.0.084 Build 20101006\\
12.0.1.107 Build 20101116\\
12.0.2.137 Build 20110112\\
12.0.4.191 Build 20110427\\
12.0.5.220 Build 20110719\\
16.0.1.150 Build 20151021
\end{quote}
(Filippo Spiga, Aug. 2016)
{\bf ifort v.12}: release 12.0.0 miscompiles iotk, leading to
mysterious errors when reading data files. Workaround: increase
the parameter BLOCKSIZE to e.g. 131072*1024 when opening files in
\texttt{iotk/src/iotk\_files.f90} (info by Lorenzo Paulatto,
Nov. 2010). Release 12.0.2 seems to work and to produce faster executables
than previous versions on 64-bit CPUs (info by P. Giannozzi, March 2011).
Nov. 2010).
{\bf ifort v.11}: Segmentation faults were reported for the combination
ifort 11.0.081, MKL 10.1.1.019, OpenMP 1.3.3. The problem disappeared

View File

@ -509,7 +509,7 @@ subroutine readgth (iunps, np, upf)
!-----------------------------------------------------------------------
!
USE kinds, ONLY: dp
USE constants, ONLY: e2
USE constants, ONLY: e2, tpi
USE parameters, ONLY: lmaxx
USE funct, ONLY: set_dft_from_name, dft_is_hybrid
USE pseudo_types, ONLY: pseudo_upf
@ -523,7 +523,7 @@ subroutine readgth (iunps, np, upf)
! Local variables
integer :: ios, pspdat, pspcod, pspxc, lmax, lloc, mmax, ii, jj, ll, nn, nnonloc, &
nprl, os, ns, iv, jv
real(dp) :: znucl, r2well, rloc, rrl, cc(4)
real(dp) :: rcore, qcore, rc2, prefact, znucl, r2well, rloc, rrl, cc(4)
character(len=256) :: info
character(len= 1), parameter :: ch10=char(10), spdf(0:3) = ['S','P','D','F']
character(len= 2), external :: atom_name
@ -560,6 +560,14 @@ subroutine readgth (iunps, np, upf)
call gth_grid_for_rho(upf,znucl)
read (iunps, *, err=400) pspcod,pspxc,lmax,lloc,mmax,r2well
IF ( pspcod /= 10 .AND. pspcod /= 12 ) &
call errore ('readgth', 'unknown/invalid pspcod:', pspcod )
IF ( pspcod == 12 ) THEN
! pseudo with NLCC
upf%nlcc=.true.
upf%generated="New Soft-Accurate NLCC pseudopotentials, generated by Santanu Saha"
upf%author=upf%author//"/Saha"
ENDIF
IF ( lmax-1 > lmaxx ) call errore ('readgth', 'strange lmax', lmax-1)
IF ( lmax == lloc) THEN
upf%lmax = lmax-1
@ -580,6 +588,8 @@ subroutine readgth (iunps, np, upf)
upf%dft = 'PBE'
ELSE IF (pspxc == 18) THEN
upf%dft = 'BLYP'
ELSE IF (pspxc == -101130) THEN ! PBE from libXC
upf%dft = 'PBE'
ELSE
call errore ('readgth', 'pspxc cod. cannot be understood', abs (np) )
ENDIF
@ -620,6 +630,16 @@ subroutine readgth (iunps, np, upf)
!& ' k33 =', (kij(ll,3,jj),jj=3,3)
end do prjloop
!
if (upf%nlcc) then
read (iunps, *, err=400) rcore, qcore
ALLOCATE ( upf%rho_atc(upf%mesh) )
rc2 = rcore**2
prefact = qcore * (znucl-upf%zp) / (sqrt(tpi)*rcore)**3
do ii=1,upf%mesh
upf%rho_atc(ii) = prefact * exp(-0.5_dp * upf%r(ii)**2 / rc2)
enddo
end if
!
allocate(upf%lll(upf%nbeta), upf%els_beta(upf%nbeta), upf%dion(upf%nbeta,upf%nbeta))
allocate(gth_p(ns)%lll(upf%nbeta), gth_p(ns)%ipr(upf%nbeta))
iv=0