Skip to content

Commit

Permalink
Additions:
Browse files Browse the repository at this point in the history
- *** BSE/TDDFT beyond the TDA ***
  It is now possible to calculate TDDFT and BSE response functions beyond the
  Tamm-Dancoff approximation. The antiresonant and coupling blocks of the
  Hamiltonians can be computed.
  The final Dyson equation is, then. solved using diagonalization or the
  quasi-Hermitian Haydock algorithm proposed in Nano Letters, 9, 2820 (2009)

- *** LIBXC support ***
  This means that Yambo can ALWAYS read GS (abinit) databases generated using libxc.
  If, in addition, yambo is linked against LIBXC (see --with-libxc-include/--with-libxc-lib options
  of configure) this is used to evalute DFT xc terms.

- *** REAL AXIS GW ***
  It is now possible to calculate the GW self-energy on the real-axis. This means no plasmon-pole
  approx and the possibility of calculating electronic lifetimes.
  In addition the secant (recursive) solver of the Dyson equation has been added.

- *** CUBE format ***
  Added support plot 3D isosurfaces in Gaussian cube format.
  • Loading branch information
andreamarini authored and sangallidavide committed Feb 17, 2017
1 parent 678098b commit 1795a6a
Show file tree
Hide file tree
Showing 92 changed files with 3,633 additions and 655 deletions.
219 changes: 219 additions & 0 deletions ChangeLog

Large diffs are not rendered by default.

18 changes: 15 additions & 3 deletions config/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,11 @@ cpu = @build_cpu@
os = @build_os@
mpi = @mpi_cpp@
netcdf = @dnetcdf@
libxc = @dlibxc@
scalapack = @dscalapack@
precision = @dp_cpp@
fft = @FFT_CPP@
xcpp = @dnetcdf@ @mpi_cpp@ @FFT_CPP@ @dscalapack@ @dp_cpp@
xcpp = @dnetcdf@ @dlibxc@ @mpi_cpp@ @FFT_CPP@ @dscalapack@ @dp_cpp@
debug = @enable_debug@
do_blas = @compile_blas@
do_lapack = @compile_lapack@
Expand Down Expand Up @@ -98,6 +99,17 @@ ypp: libs
@LIBS2DO="$(YPPLIBS)" ; $(mksrc)
@X2DO="ypp" ;XPATH="ypp";XLIBS="$(YPPLIBS)";$(mkx)
#
# TESTs
#
tests: yambo
@if ! test -f ../branches/test-suite/run-tests.pl ; then echo "TESTs folder not found"; fi
@if test -f ../branches/test-suite/run-tests.pl ; then \
cd ../branches/test-suite/; ./run-tests.pl -t b -test "Al111 01_init 02_eels 03_eps_drude 04_HF" -bindir=${PWD}/bin/ ; \
cd ../branches/test-suite/; ./run-tests.pl -t b -test "C6H3Cl3 01_init 02_ALDA_diago 03_ALDA_haydo 04_QP 05_BSE 06_QP_RIM" -bindir=${PWD}/bin/; \
cd ../branches/test-suite/; ./run-tests.pl -t b -test "hBN 01_init 02_HF 03_QP 04_BSE" -bindir=${PWD}/bin/; \
cd ../branches/test-suite/; ./run-tests.pl -t b -test "LiF 01_init 02_RPA_no_LF 04_alda_g_space" -bindir=${PWD}/bin/; \
fi
#
clean: clean_fast
clean_fast:
@$(objects_clean)
Expand Down Expand Up @@ -132,7 +144,7 @@ define mklib
if test ! -f "$(libdir)/lib$$ldir.a" ; \
echo " " ; \
echo ">>>[Making $$ldir]<<<" ; \
then ./sbin/make_makefile.sh $$DIR2GO/$$ldir lib$$ldir.a .objects l $(precision) $$ADF ; \
then ./sbin/make_makefile.sh $$DIR2GO/$$ldir lib$$ldir.a .objects l $(precision) $(xcpp) $$ADF ; \
cd $$DIR2GO/$$ldir ; $(make) VPATH=$$DIR2GO/$$ldir || exit "$$?" ; cd ../../; fi \
done
endef
Expand Down Expand Up @@ -161,7 +173,7 @@ define objects_clean
endef
define lib_mod_clean
find . \( -name '*.a' -o -name '*.mod' \) -type f -print | \
grep -v netcdf | grep -v iotk | grep -v typesize | xargs rm -f
grep -v netcdf | grep -v xc_ | grep -v libxc | grep -v iotk | grep -v typesize | xargs rm -f
echo "[CLEAN] Libraries ... done"
echo "[CLEAN] Modules ... done"
endef
Expand Down
6 changes: 3 additions & 3 deletions config/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330,Boston,
# MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt.
#
AC_INIT(Yambo, 3.2.2 r.633 , [email protected])
AC_INIT(Yambo, 3.2.3 r.676 , [email protected])
SVERSION="3"
SPATCHLEVEL="2"
SSUBLEVEL="2"
SREVISION="633"
SSUBLEVEL="3"
SREVISION="676"
AC_SUBST(SVERSION)
AC_SUBST(SPATCHLEVEL)
AC_SUBST(SSUBLEVEL)
Expand Down
22 changes: 11 additions & 11 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.63 for Yambo 3.2.2 r.633 .
# Generated by GNU Autoconf 2.63 for Yambo 3.2.3 r.676 .
#
# Report bugs to <[email protected]>.
#
Expand Down Expand Up @@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='Yambo'
PACKAGE_TARNAME='yambo'
PACKAGE_VERSION='3.2.2 r.633 '
PACKAGE_STRING='Yambo 3.2.2 r.633 '
PACKAGE_VERSION='3.2.3 r.676 '
PACKAGE_STRING='Yambo 3.2.3 r.676 '
PACKAGE_BUGREPORT='[email protected]'

ac_unique_file="driver/driver.c"
Expand Down Expand Up @@ -1370,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Yambo 3.2.2 r.633 to adapt to many kinds of systems.
\`configure' configures Yambo 3.2.3 r.676 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
Expand Down Expand Up @@ -1435,7 +1435,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Yambo 3.2.2 r.633 :";;
short | recursive ) echo "Configuration of Yambo 3.2.3 r.676 :";;
esac
cat <<\_ACEOF
Expand Down Expand Up @@ -1556,7 +1556,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Yambo configure 3.2.2 r.633
Yambo configure 3.2.3 r.676
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
Expand All @@ -1570,7 +1570,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Yambo $as_me 3.2.2 r.633 , which was
It was created by Yambo $as_me 3.2.3 r.676 , which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
Expand Down Expand Up @@ -1940,8 +1940,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
SVERSION="3"
SPATCHLEVEL="2"
SSUBLEVEL="2"
SREVISION="633"
SSUBLEVEL="3"
SREVISION="676"
Expand Down Expand Up @@ -13643,7 +13643,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Yambo $as_me 3.2.2 r.633 , which was
This file was extended by Yambo $as_me 3.2.3 r.676 , which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -13693,7 +13693,7 @@ Report bugs to <[email protected]>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
Yambo config.status 3.2.2 r.633
Yambo config.status 3.2.3 r.676
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
Expand Down
11 changes: 11 additions & 0 deletions driver/driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ typedef struct
#if defined _a2y
#include "a2y.h"
#endif
#if defined _c2y
#include "c2y.h"
#endif
#if defined _f2y
#include "f2y.h"
#endif
Expand Down Expand Up @@ -268,6 +271,14 @@ main(int argc, char *argv[])
F90_FUNC(ypp_i,YPP_I)(
rnstr2,&lni,inf,&iif,id,&iid,od,&iod,com_dir,&icd,js,&ijs,&np,&pid);
#endif
#if defined _c2y
/*
Running the Fortran c2y driver
===========================================================================
*/
F90_FUNC(c2y_i,C2Y_I)(
rnstr2,&lni,inf,&iif,id,&iid,od,&iod,com_dir,&icd,js,&ijs,&np,&pid);
#endif
#if defined _a2y
/*
Running the Fortran a2y driver
Expand Down
26 changes: 15 additions & 11 deletions driver/yambo.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,27 @@
{"help", "h","Short Help",0,0,0,0},
{"lhelp", "H","Long Help",0,0,0,0},
{"jobstr", "J","Job string identifier",0,0,1,0},
{"infver", "V","Input file verbosity [opt=RL,kpt,sc,qp,io,gen,resp]",0,0,1,0},
{"infver", "V","Input file verbosity",0,0,1,0},
{"DESC", " ","opt=RL,kpt,sc,qp,io,gen,resp,rt,all",0,0,0,0},
{"ifile", "F","Input file",0,0,1,0},
{"idir", "I","Core I/O directory",0,0,1,0},
{"odir", "O","Additional I/O directory",0,0,1,0},
{"cdir", "C","Communications I/O directory",0,0,1,0},
{"idir", "I","Core I/O directory",0,0,1,0},
{"odir", "O","Additional I/O directory",0,0,1,0},
{"cdir", "C","Communications I/O directory",0,0,1,0},
{"nompi", "N","Skip MPI initialization",0,0,0,0},
{"dbpr", "D","DataBases properties",0,0,0,0},
{"dbfrag", "S","DataBases fragmentation",0,0,0,0},
{"setup", "i","Initialization",0,0,0,0},
{"optics", "o","Optics [opt=(c)hi/(b)se/(t)dhf]",0,0,1,0},
{"tddft", "t","The TDDFTs [opt=(a)LDA/(l)RC]",0,0,1,0},
{"rim_cut","c","Coulomb interaction",0,0,0,0},
{"HF_and_locXC", "x","Hartree-Fock Self-energy and local XC",0,0,0,0},
{"em1s", "b","Static Inverse Dielectric Matrix",0,0,0,0},
{"gwapprx","p","GW approximations [opt=(p)PA/c(HOSEX)]",0,0,1,0},
{"gw0", "g","Dyson Equation solver [opt=n(ewton)]",0,0,1,0},
{"bss", "y","BSE solver [opt=h/d]",0,0,1,0},
{"tddft", "t","The TDDFTs [opt=(a)LDA/(l)RC]",0,0,1,0},
{"rim_cut","c","Coulomb interaction",0,0,0,0},
{"HF_and_locXC", "x","Hartree-Fock Self-energy and local XC",0,0,0,0},
{"em1d", "d","Dynamical Inverse Dielectric Matrix",0,0,0,0},
{"em1s", "b","Static Inverse Dielectric Matrix",0,0,0,0},
{"gwapprx","p","GW approximations [opt=(p)PA/c(HOSEX)]",0,0,1,0},
{"gw0", "g","Dyson Equation solver",0,0,1,0},
{"DESC", " ","opt=n(ewton)/s(ecant)/g(reen)",0,0,0,0},
{"life", "l","GoWo Quasiparticle lifetimes",0,0,0,0},
{"bss", "y","BSE solver [opt=h/d/i/t]",0,0,1,0},
{NULL,NULL,NULL,0,0,0,0}
};
char *tool="yambo";
Expand Down
10 changes: 10 additions & 0 deletions driver/yambo_driver.F
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,12 @@ integer function yambo_driver(instr,lnstr,inf,iinf,ind,&
!
if (l_pp_em1) i_err=X_em1(Xen,Xk,q,X(4),Xw(4),.false.)
!
! Dynamical
!-----------
!
l_dyn_em1= (.not.l_ppa.and..not.l_cohsex) .and. (l_em1d.or.(l_gw0.and.l_el_corr))
!
if (l_dyn_em1) i_err=X_em1(Xen,Xk,q,X(3),Xw(3),.false.)
!
! EXTENDED COLLISIONS (HF & COHSEX)
!===================================
Expand All @@ -188,6 +194,10 @@ integer function yambo_driver(instr,lnstr,inf,iinf,ind,&
!
else
!
! Real Axis
!============
!
call QP_driver(X(3),Xen,Xk,en,k,q,Xw(3))
!
endif
!
Expand Down
8 changes: 4 additions & 4 deletions driver/ypp.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt.
*/
/*
Driver declaration
Driver
*/
#if defined _FORTRAN_US
int ypp_i
Expand All @@ -36,14 +36,14 @@
{"help", "h","Short Help",0,0,0,0},
{"lhelp", "H","Long Help",0,0,0,0},
{"jobstr","J","Job string identifier",0,0,1,0},
{"infver", "V","Input file verbosity [opt=gen]",0,0,1,0},
{"infver", "V","Input file verbosity [opt=gen,qp]",0,0,1,0},
{"ifile", "F","Input file",0,0,1,0},
{"idir", "I","Core I/O directory",0,0,1,0},
{"odir", "O","Additional I/O directory",0,0,1,0},
{"cdir", "C","Communications I/O directory",0,0,1,0},
{"cdir", "C","Communications I/O directory",0,0,1,0},
{"nompi", "N","Skip MPI initialization",0,0,0,0},
{"dbfrag","S","DataBases fragmentation",0,0,0,0},
{"bzgrids","k","BZ Grid generator [(k)pt,(q)pt,(l)ongitudinal]",0,0,1,0},
{"bzgrids","k","BZ Grid generator [(k)pt,(q)pt]",0,0,1,0},
{"excitons", "e","Excitons [(s)ort,(a)mplitude,(w)ave]",0,0,1,0},
{"electrons","s","Electrons [(w)ave,(d)ensity,do(s)]",0,0,1,0},
{"freehole","f","Free hole position [excitons plot]",0,0,0,0},
Expand Down
4 changes: 2 additions & 2 deletions include/version.inc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
code_version(1)=3
code_version(2)=2
code_version(3)=2
code_revision=633
code_version(3)=3
code_revision=676
41 changes: 7 additions & 34 deletions interfaces/a2y/a2y_db1.F
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ subroutine a2y_db1(en,k,KSS_file_name)
use wave_func, ONLY: wf_nc_k, wf_igk,wf_ncx,wf_ng
use vec_operate, ONLY: cross_product,v_is_zero
use defs_datatypes, ONLY: hdr_type, wffile_type
use xc_functionals, ONLY: GS_xc_KIND,GS_xc_FUNCTIONAL,XC_USED_LIBXC
use xc_functionals, ONLY: XC_EXCHANGE_CORRELATION,XC_EXCHANGE,XC_LDA_C_PW,XC_LDA_C_PZ,&
& XC_LDA_C_WIGNER,XC_LDA_C_HL,XC_LDA_C_XALPHA,NONE,XC_LDA_X
use xc_functionals, ONLY: GS_xc_KIND,GS_xc_FUNCTIONAL
use mod_xc2y, ONLY: XC_Abinit2Yambo,XC_Libxc2Yambo
use mod_com2y, ONLY: print_interface_dimensions,symmetries_check_and_load,&
& alat_mult_factor,artificial_spin_pol
implicit none
Expand Down Expand Up @@ -74,37 +73,11 @@ subroutine a2y_db1(en,k,KSS_file_name)
! XC KIND/FUNCTIONAL
!===================
!
select case (ahdr%ixc)
case (0)
GS_xc_FUNCTIONAL=NONE
GS_xc_KIND=NONE
case (1,7)
GS_xc_FUNCTIONAL=XC_LDA_C_PW
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (2)
GS_xc_FUNCTIONAL=XC_LDA_C_PZ
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (3)
GS_xc_FUNCTIONAL=XC_LDA_C_PZ
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (4)
GS_xc_FUNCTIONAL=XC_LDA_C_WIGNER
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (5)
GS_xc_FUNCTIONAL=XC_LDA_C_HL
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (6)
GS_xc_FUNCTIONAL=XC_LDA_C_XALPHA
GS_xc_KIND=XC_EXCHANGE_CORRELATION
case (8)
GS_xc_FUNCTIONAL=XC_EXCHANGE
GS_xc_KIND=XC_LDA_X
case (9:)
call warning ('GGA not supported: switching to LDA PW')
GS_xc_FUNCTIONAL = XC_LDA_C_PW
GS_xc_KIND = XC_EXCHANGE_CORRELATION
end select
!
if (ahdr%ixc.ge. 0) then
call XC_Abinit2Yambo(ahdr%ixc,GS_xc_FUNCTIONAL,GS_xc_KIND)
else !negative ahdr%ixc means abinit used libxc
call XC_Libxc2Yambo(ahdr%ixc,GS_xc_FUNCTIONAL,GS_xc_KIND)
end if
!
n_spinor=1
n_sp_pol=1
Expand Down
2 changes: 1 addition & 1 deletion interfaces/int_modules/.objects
Original file line number Diff line number Diff line change
@@ -1 +1 @@
objs = mod_com2y.o mod_wf2y.o
objs = mod_com2y.o mod_wf2y.o mod_xc2y.o
Loading

0 comments on commit 1795a6a

Please sign in to comment.