2009-08-07 19:51:54 +08:00
|
|
|
# Makefile for pw4gww (PW4GWW)
|
|
|
|
# Author G. Stenuit and L. Martin-Samos
|
|
|
|
|
2016-06-25 15:26:50 +08:00
|
|
|
include ../../make.inc
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
# location of include files
|
2009-08-07 22:05:54 +08:00
|
|
|
IFLAGS=-I../../include
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
# location of needed modules
|
|
|
|
MODFLAGS= $(MOD_FLAG)../../iotk/src $(MOD_FLAG)../../Modules \
|
KS_Solvers directory has been created with three subdirectories:
KS_Solvers/CG, KS_Solvers/Davidson, KS_Solvers/Davidson_RCI.
Two are currently used by QE, the third one implements the Davidson
diagonalization within the Reverse Communication Interface paradigm,
courtesy of Micael Oliveira.
KS_Solvers routines depend only on lower level libraries, notably UtilXlib,
LAXlib, (SCA)LAPACK, and BLAS.
reorganization can be improved. For instance some duplicated routines like
cdiaghg and rdiaghg could/should be moved in LAXlib. This could reduce the need
to include KS_Solvers directories in the link step of many codes.
Minimal changes to calling sequence have been made, essentially just adding
h_psi,s_psi,g_psi and h_1psi,s_1psi routines names as arguments (with a
specific calling sequence ihardcode inside the routines that agree with PWSCF one).
This could be avoided adopting the RCI paradigm.
Compiled in serial and parallel, 177/182 pw tests passed (3 that were failing
even before on my laptop pw-berry, pw-langevin, pw-pawatom + 2 unknown==not tested),
12 /17 cp tests passed (some o2-us-para-pbe-X fail but the same was for the
original version)
I assume the modified calling procedure is working and the problem lies somewhere else.
Randomly tested some examples in pw, ph, pwcond and it seams to work.
Please report any problem.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13644 c92efa57-630b-4861-b058-cf58834340f0
2017-07-29 20:19:19 +08:00
|
|
|
$(MOD_FLAG)../../KS_Solvers/Davidson $(MOD_FLAG)../../KS_Solvers/CG \
|
2017-07-26 19:15:20 +08:00
|
|
|
$(MOD_FLAG)../../PW/src $(MOD_FLAG)../../FFTXlib $(MOD_FLAG)../../LAXlib $(MOD_FLAG)../../UtilXlib $(MOD_FLAG).
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
PW4GWWOBJS = \
|
|
|
|
allocate_wannier.o \
|
|
|
|
produce_wannier_gamma.o \
|
2013-07-03 23:24:46 +08:00
|
|
|
start_pw4gww.o \
|
|
|
|
stop_pp.o \
|
|
|
|
openfil_pw4gww.o \
|
|
|
|
dft_exchange.o \
|
2009-08-07 19:51:54 +08:00
|
|
|
wfc_real.o \
|
2013-07-03 23:24:46 +08:00
|
|
|
full.o \
|
|
|
|
energies_xc.o \
|
|
|
|
wannier.o \
|
|
|
|
write_wannier_matrix.o \
|
|
|
|
rotate_wannier.o \
|
|
|
|
self_lanczos.o \
|
|
|
|
pola_lanczos.o \
|
|
|
|
matrix_wannier_gamma.o \
|
|
|
|
calculate_wing.o \
|
|
|
|
fake_conduction.o \
|
|
|
|
o_1psi.o \
|
|
|
|
o_bands.o \
|
|
|
|
optimal.o \
|
|
|
|
pola_partial.o \
|
|
|
|
semicore.o \
|
|
|
|
semicore_read.o \
|
|
|
|
v_basis.o \
|
|
|
|
wannier_uterms.o \
|
|
|
|
write_vpot_matrix.o \
|
|
|
|
diago_cg.o \
|
|
|
|
o_rinitcgg.o \
|
|
|
|
diago_cg_g.o \
|
|
|
|
contour_terms.o \
|
|
|
|
fft_custom.o \
|
|
|
|
exchange_custom.o \
|
|
|
|
mp_wave_parallel.o \
|
|
|
|
wannier_bse.o\
|
|
|
|
hpsi_pw4gww.o \
|
2015-04-07 04:34:45 +08:00
|
|
|
cgsolve_all_gamma.o \
|
|
|
|
realus.o
|
2009-08-07 19:51:54 +08:00
|
|
|
|
KS_Solvers directory has been created with three subdirectories:
KS_Solvers/CG, KS_Solvers/Davidson, KS_Solvers/Davidson_RCI.
Two are currently used by QE, the third one implements the Davidson
diagonalization within the Reverse Communication Interface paradigm,
courtesy of Micael Oliveira.
KS_Solvers routines depend only on lower level libraries, notably UtilXlib,
LAXlib, (SCA)LAPACK, and BLAS.
reorganization can be improved. For instance some duplicated routines like
cdiaghg and rdiaghg could/should be moved in LAXlib. This could reduce the need
to include KS_Solvers directories in the link step of many codes.
Minimal changes to calling sequence have been made, essentially just adding
h_psi,s_psi,g_psi and h_1psi,s_1psi routines names as arguments (with a
specific calling sequence ihardcode inside the routines that agree with PWSCF one).
This could be avoided adopting the RCI paradigm.
Compiled in serial and parallel, 177/182 pw tests passed (3 that were failing
even before on my laptop pw-berry, pw-langevin, pw-pawatom + 2 unknown==not tested),
12 /17 cp tests passed (some o2-us-para-pbe-X fail but the same was for the
original version)
I assume the modified calling procedure is working and the problem lies somewhere else.
Randomly tested some examples in pw, ph, pwcond and it seams to work.
Please report any problem.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13644 c92efa57-630b-4861-b058-cf58834340f0
2017-07-29 20:19:19 +08:00
|
|
|
QEMODS = ../../Modules/libqemod.a ../../KS_Solvers/Davidson/libdavid.a ../../KS_Solvers/CG/libcg.a \
|
|
|
|
../../FFTXlib/libqefft.a ../../LAXlib/libqela.a ../../UtilXlib/libutil.a
|
2011-12-15 01:33:33 +08:00
|
|
|
PWOBJS = ../../PW/src/libpw.a
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
LIBMIN= ../minpack/minpacklib.a
|
|
|
|
|
|
|
|
TLDEPS= bindir libs pw
|
|
|
|
|
|
|
|
all : tldeps pw4gww.x
|
|
|
|
|
2017-07-26 19:15:20 +08:00
|
|
|
pw4gww.x : pw4gww.o libpw4gww.a $(PW4GWWOBJS) $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBMIN)
|
2009-08-07 19:51:54 +08:00
|
|
|
$(LD) $(LDFLAGS) -o $@ \
|
2013-11-06 15:28:49 +08:00
|
|
|
pw4gww.o libpw4gww.a $(PWOBJS) $(QEMODS) $(LIBOBJS) $(LIBMIN) $(LIBS)
|
2009-08-07 19:51:54 +08:00
|
|
|
- ( cd ../../bin ; ln -fs ../GWW/pw4gww/$@ . )
|
2013-11-08 05:06:06 +08:00
|
|
|
|
|
|
|
tldeps :
|
|
|
|
if test -n "$(TLDEPS)" ; then \
|
|
|
|
( cd ../.. ; $(MAKE) $(TLDEPS) || exit 1 ) ; fi
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
libpw4gww.a : $(PW4GWWOBJS)
|
|
|
|
$(AR) $(ARFLAGS) $@ $?
|
|
|
|
$(RANLIB) $@
|
|
|
|
|
|
|
|
clean :
|
2016-04-27 22:53:38 +08:00
|
|
|
- /bin/rm -fv *.x *.o *~ *_tmp.f90 *.d *.mod *.i *.L libpw4gww.a
|
2009-08-07 19:51:54 +08:00
|
|
|
|
|
|
|
include make.depend
|
2013-07-03 23:24:46 +08:00
|
|
|
# DO NOT DELETE
|