Commit Graph

635 Commits

Author SHA1 Message Date
Iurii Timrov a0ae1121eb Modifications in TDDFPT and HP modules:
1) Remove PP files from examples of TDDFPT, use an automatic
download of PPs from the QE web site;
2) TDDFPT examples are now in the standard format of QE
(using run_example scripts);
3) Fix the bug in TDDFPT+EXX due to recent changes in PW (fft_fact);
4) The ecutfock parameter in TDDFPT+EXX is now read from XML and
cannot be specified from the input of TDDFPT;
5) In TDDFPT the oscillator strength (absorption coefficient)
is now written in a separate file (and not in the same file
where \chi is written);
6) HP examples use PPs from the Pslibrary by an automatic
download from the QE website.
2018-09-07 16:26:46 +02:00
giannozz 240526cc33 Merge branch 'hp' into 'develop'
Implementation of the new code hp.x to compute Hubbard U from DFPT

See merge request QEF/q-e!164
2018-08-29 21:02:14 +00:00
Iurii Timrov 88d9f52ed4 TDDFPT: the variables tqr and real_space are read from the XML file.
Now TDDFPT with tqr=.true. is working (there were missing
initializations - added a call to generate_qpointlist).
Also added the example "Benzene-Rspace" which benchmarks the use
of TDDFPT with USPP and tqr=.true.
2018-08-29 15:15:48 +02:00
Iurii Timrov 0bc76d8100 Implementation of the new code hp.x to compute Hubbard U from DFPT.
Iurii Timrov, Nicola Marzari, and Matteo Cococcioni,
Phys. Rev. B 98, 085127 (2018); arXiv:1805.01805
2018-08-29 14:54:42 +02:00
Iurii Timrov e546178649 TDDFPT: tqr and real_space are no longer set up in TDDFPT but
instead they are read from the XML file produced by PWscf (not working yet).
2018-08-27 13:10:07 +02:00
Paolo Giannozzi 1dbe0ebdea Variable "real_space_debug" deleted from realus module. In TDDFPT, input
variables "auto_rs" (and "real_space_debug") deleted. TDDFPT still reads
"tqr" and "real_space" from input (TODO: read them from data file instead).
"make.depend" updated, TDDFPT no longer depends upon iotk
2018-08-22 12:50:05 +02:00
Paolo Giannozzi 6f7bbdf452 More Makefile cleanup: targets pwlibs, phlibs added in order to avoid much
uneeded relinking; the mysterious "tldeps" machinery modified accordingly;
added explicit dependencies to GWW targets to prevent (once again) problems
with make -j (seems to work now). make.depend updated (once again).
2018-08-21 17:14:04 +02:00
Stefano de Gironcoli 9bcad68eba wrong reference to libks_solvers.a corrected 2018-08-14 13:50:06 +02:00
Stefano De Gironcoli d0ceafaf92 a single libks_solvers.a library is created.
Makefiles of the children codes are updated to use it.
2018-08-14 07:42:30 +02:00
Paolo Giannozzi f759fd5a79 Old-style I/O deleted. Everything should work as in 6.2 and 6.3 with default
options, but some codes that have not been updated, notably cppp.x and
bgw2pw.x, are broken for good; some exotic options may also be broken.
2018-08-07 19:43:21 +02:00
Stefano De Gironcoli b8f879e0d7 timing using start_clock/stop_clock 2018-08-03 09:27:57 +02:00
Stefano de Gironcoli bc59e529d8 more missing dependencies for libppcg.a added to Makefiles 2018-08-03 04:15:56 +02:00
Stefano De Gironcoli 3c5389add6 more changes to add a ppcg option to c_bands.f90 diagonalization 2018-08-03 04:15:56 +02:00
Oscar Baseggio a38b5c99e8 Reorder gamma and k functions
Description in k1d_term_gamma function
insert if in lr_apply_liouvillin to protect without hybrid
2018-07-27 11:34:19 +02:00
Oscar Baseggio 2afba88e4b restore h_psi, and switch off/on exx_is_active in lr_apply_liouvillian
before and after call h_psi
2018-07-26 13:56:51 +02:00
Oscar Baseggio d03004d8fe correct wavefunction module name, thanks 2018-07-25 14:21:19 +02:00
Oscar Baseggio e0c3d0b043 Cleanup and changes suggested by Iurii 2018-07-25 10:33:03 +02:00
Oscar Baseggio 1b19c2af05 optimized usage of Hybrid functionals in TDDFPT codes
reorganized do loops in k1d_term_gamma functions

in h_psi vexx is skipped for TDDFPT using Gamma

k2d_term_gamma function became k2d_vexx_term_gamma calculates k2d
and vexx terms on the same cycle of the loop
2018-07-24 16:56:52 +02:00
Paolo Giannozzi 315ef30c44 Merge branch 'timrov/q-e-develop' into develop 2018-07-21 17:22:18 +02:00
timrov 0d8ac8eede Bugfix in TDDFPT: The restart option in turboEELS (turbo_eels.x)
with ultrasoft pseudopotentials was not working.
2018-07-20 11:30:20 +02:00
giannozz 54abe91aa3 Merge branch 'feature/RefactorWfcModuleName' into 'develop'
Rename module wavefunctions_module to wavefunctions

See merge request QEF/q-e!118
2018-07-18 15:58:00 +00:00
Miguel Carvajal 68ee7b5e87 Rename module wavefunctions_module to wavefunctions 2018-07-12 16:11:48 +02:00
Paolo Giannozzi 7f32483fff IN all Makefiles, LIBS replaced by QELIBS, to prevent unlikely but not
impossible clashes with LIBS as defined by the OS or as used by the configure's
of external libraries (e.g. FoX, for which one such problem has been reported)
2018-07-11 19:58:41 +02:00
Paolo Giannozzi e165d5cf88 Deleted draft of CPC paper 2018-07-06 09:26:57 +02:00
Paolo Giannozzi a929525d7b No valid reason to re-defined IFLAGS inside Makefiles 2018-07-04 16:42:12 +02:00
Oliviero Andreussi 2459f3a479 updated make.depend files 2018-06-29 17:01:30 -05:00
Oliviero Andreussi d019f73610 updated TDDFPT examples with Environ 2018-06-29 17:00:16 -05:00
Oliviero Andreussi 1f690d9233 fixed a bug in lr_readin.f90, wrong arguments in call to plugin_scf_potential 2018-06-28 15:17:34 -05:00
Oliviero Andreussi 783b46b55c fixed a stupid bug in plugin in td 2018-06-28 00:32:32 -05:00
Oliviero Andreussi 4ed16b009f fixed a couple of bugs on patches and revert scripts 2018-06-27 14:47:36 -05:00
Oliviero Andreussi 0cf3a89c74 Merge branch 'master' into tdplugin 2018-06-26 16:43:28 -05:00
Oliviero Andreussi e924223475 first attempt at pluginization of TD 2018-06-26 16:39:57 -05:00
Paolo Giannozzi ae635622db Added compiled documentation files in *.pdf. *txt, *html format.
Since github and gitlab just distribute a snapshot of the git repository,
these files must be in the repository as well. NOTA BENE:
All changes MUST GO TO *.tex or *.def FILES, NOT to these files!
Also note that the "make doc" machinery produces also *.xml files and
latex2html converted html versions of latex files. I don't think they belong
to the repository (latex files should maybe be replaced by md files)
2018-06-22 17:41:44 +02:00
Iurii Timrov 60c95cdf18 TDDFPT+USPP with k-points (turbo_lanczos.x) is not fully implemented.
This part of the code was always disabled, just addind an error message
in one routine.
2018-06-12 14:27:09 +02:00
Iurii Timrov bd1af31608 Bugfix: TDDFPT+USPP (turbo_lanczos.x and turbo_davidson.x)
was not working correctly after a change of logic how the
USPP part of the density is computed and added to the normal part
(PW/src/addusdens.f90)
2018-06-12 12:15:25 +02:00
Paolo Giannozzi 042bbe5449 Simplified Makefiles: removed uneeded "touch-dummy" targets.
May still need some tweaking and the addition of .PHONY directive in Makefile
2018-05-15 21:50:31 +02:00
Paolo Giannozzi 84d09bcc20 With the latest change, clean_pw, used in many places, depend upon dft-d3/.
Makefiles modified accordingly.

I am not at all happy about this "solution": unneeded dependencies should be
avoided, but this would need to change the way things are deallocated at the
end of a run (clean_pw does too many things at the same time)
2018-05-10 08:27:14 +02:00
Paolo Giannozzi e498ee3f2c check_para_diag is a function but was called as a subroutine in three cases.
Noticed by Satomichi Nishihara. Minor cleanup. Should work exactly as before.
2018-04-10 16:15:15 +02:00
Paolo Giannozzi 99515484f3 Some general-purpose routines for file and directory handling:
create_directory, check_tempdir, check_file_exist, clean_tempdir,
moved from input.f90 or xml_io_base into module "io_files"
2018-03-14 21:23:26 +01:00
Paolo Giannozzi 390a836b5c More EXX restructuring: routines specific for band parallelization moved to
file exx_band.f90; make.depend updated accordingly. Module exx now needs
modules exx_base and exx_band. Next: all general variables and routines
moved to exx_base.
2018-03-07 18:06:27 +01:00
Paolo Giannozzi 5ce04b2c23 Beginning of exx.f90 reordering: all quantities and routines related to
k+q grid, symmetry, treatment of limit q => 0, moved to exx_base.f90.
Everything exactly as before, but beware the following changes:
- exx_reinit modified. moved to lr_exx_reinit in TDDFPT/src/lr_exx_kernel.f90
- exx_grid_reinit replaced by modified exx_grid_init and exx_gvec_reinit
2018-03-05 09:49:34 +01:00
Stefano de Gironcoli cd2e99c523 Merge branch 'master' of https://gitlab.com/QEF/q-e
Conflicts:
	PW/src/sum_band.f90
2018-01-10 14:58:38 +01:00
Stefano de Gironcoli 4c4c93c257 define a generic interface for fft_interpolate and move the correspondig routine to FFTXlib 2018-01-08 23:02:08 +01:00
Paolo Giannozzi 9af0317f8d Once again, a problem with modules in Makefiles. In order to simplify things,
after the proliferarion of modules and libraries, I have collected into a
single variable BASEMOD_FLAGS, defined in make.inc, the list of directories
for modules, to be included by all codes. IMPORTANT NOTICE: re-run "configure",
the new Makefiles work in conjunction with the new make.inc
2018-01-08 22:28:48 +01:00
Paolo Giannozzi 524e7193a6 Release-notes and make.depend updated, misspells corrected 2018-01-03 09:23:48 +01:00
Paolo Giannozzi 70e154e7b1 Merge branch 'master' of https://gitlab.com/QEF/q-e 2018-01-03 08:42:30 +01:00
Stefano de Gironcoli 9ed8602b5a mispelled variable desc$have_task_groups corrected to desc%has_task_group 2018-01-03 01:38:48 +01:00
Stefano de Gironcoli a121f57263 call sequence of fft_interpolate_real and fft_interpolate_complex made equal 2018-01-03 01:13:20 +01:00
Stefano de Gironcoli 407a1c444a routine cinterpolate replaced by fft_interpolate_complex
similar to fft_interpolate_real
2018-01-03 00:50:24 +01:00
Stefano de Gironcoli 72532727af subroutines interpolate and exx_interpolate unified into fft_interpolate_real
syntax changed
2018-01-02 23:42:06 +01:00
Paolo Giannozzi b21f20023f Structure exx_fft deleted. To be done: ggenx and ggent must be merged with ggen. 2018-01-02 22:53:20 +01:00
Stefano de Gironcoli 41e91c0dac new interface to fft calls
three types of calls are possibles :  'Rho', 'Wave', 'tgWave'

   In order to enable an fft-type for a given grid the corresponding clock_labels must be set.
   One gives a name to desc%rho_clock_lable for 'Rho' type fft and a name to
   desc%wave_clock_lable for 'Wave' and 'tgWave' types. Whether tg is
   possible depends of the already defined value of desc%have_task_groups variable (mispell to be corrected soon).

   definining
      dffts%rho_clock_label='ffts', dffts%wave_clock_label='fftw',
      dfftp%rho_clock_label='fft', dfftt%rho_clock_label='fftc' and
      dfftt%wave_clock_label='fftcw'
   and changing
      'Dense'->'Rho', 'Smooth'->'Rho', 'Custom'->'Rho', 'CustomWave'->'Wave'
   the same clock names and the same overall behavior as with the old interface is obtained.
2018-01-02 17:45:45 +01:00
Paolo Giannozzi 02db055030 More removal of variables from exx_fft 2018-01-01 18:58:31 +01:00
Paolo Giannozzi 3d0eecd236 Replicated variable ngmt removed from exx_fft (is alrady in dfftt) 2018-01-01 13:59:37 +01:00
Paolo Giannozzi aa3f5b1a19 More decustomizatio of custom FFT's: the FFT descriptor dfftt, together with
all unused or uselss variables, taken out of the exx_fft structure. Should
have no side effects but beware! especially for TDDFPT
2017-12-30 19:06:17 +01:00
Paolo Giannozzi 2aa2e77020 FFT indices moved to fft descriptor also for "custom" grid. Quick and dirty
solution: exx_ftt%nlt and %nltm are simply replaced by exx_dft%dfftt%nl and
%nlm. A better solution is to make "custom" FFT's as similar as possible to
all other FFTs: extract dfftt from exx_fft, replace routines ggenx and ggent
with fft_ggen, delete or redefine useless and confusing exx_fft structure
2017-12-28 11:16:20 +01:00
Carlo Cavazzoni 7d48ed9a9e nl indexes now in fft type 2017-12-24 16:22:32 +01:00
Paolo Giannozzi 8c4a92cdc5 Second copy of "set_bgrp_index" replaced by generic routine "divide" 2017-12-23 22:28:53 +01:00
Oleksandr Motornyi 531061aa10 Update lr_addus_dvpsi.f90
Bug fix: Code was not working properly for systems with more than 2 atoms per unit cell with US pseudopotentials.
2017-12-22 15:18:43 +00:00
giannozz 58185dfee9 DOS with tetrahedra should work again with old XML file; make.depend updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13993 c92efa57-630b-4861-b058-cf58834340f0
2017-11-13 15:49:20 +00:00
giannozz 6c45539bb4 Misc spelling errors
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13957 c92efa57-630b-4861-b058-cf58834340f0
2017-10-25 20:08:57 +00:00
timrov 52fd95281a Bugfix: TDDFPT+EXX k-points version (which is disabled) was not working.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13946 c92efa57-630b-4861-b058-cf58834340f0
2017-10-23 10:42:26 +00:00
timrov 1de8ef1ffb There was a typo in the definition of the parameter ir_end
(needed for TDDFPT with Environ)
I. Timrov and O. Andreussi


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13923 c92efa57-630b-4861-b058-cf58834340f0
2017-10-16 15:21:36 +00:00
timrov ce0b1d8a2d turbo_eels.x runs now with task groups but gives wrong results.
lr_psym_eels.f90 had to be aligned with PH/psymdvscf.f90


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13811 c92efa57-630b-4861-b058-cf58834340f0
2017-08-31 10:33:55 +00:00
timrov 2f72b90251 turbo_lanczos.x is now working with task groups (thanks to Carlo).
turbo_eels.x is not working yet.
Added a call to fft_type_allocate in lr_run_nscf.f90 by analogy to PH/run_nscf.f90


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13810 c92efa57-630b-4861-b058-cf58834340f0
2017-08-31 10:11:59 +00:00
ccavazzoni c6b1711895 - use helper function
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13793 c92efa57-630b-4861-b058-cf58834340f0
2017-08-28 13:22:47 +00:00
ccavazzoni b84c244617 - bug fix, rho_1 update with task group
- use helper subruotines


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13791 c92efa57-630b-4861-b058-cf58834340f0
2017-08-28 12:51:48 +00:00
giannozz a6e197099e dependencies updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13790 c92efa57-630b-4861-b058-cf58834340f0
2017-08-28 10:20:06 +00:00
ccavazzoni 8702c802db - use helper function in place of an explicit reference to type member
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13788 c92efa57-630b-4861-b058-cf58834340f0
2017-08-26 16:59:45 +00:00
timrov baf00d25a9 Task groups are not working in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13779 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 13:28:55 +00:00
timrov e3c19b590f Update PBE examples of turboTDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13778 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 13:16:54 +00:00
timrov 23619b9424 Loop in real space in TDDFPT is done the same as in Modules/compute_dipole.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13777 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 12:47:12 +00:00
timrov d2918d858d Update the PBE example of turboEELS, because of changes in the
precision of parameters in the PBE functional (which affects
the value of the total energy).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13775 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 10:51:02 +00:00
giannozz 43f8062c8c Final cleanup of check_stop machinery - only real change in the end:
max_seconds is stored into module check_stop and no longer in input_parameters


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13774 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 09:51:34 +00:00
degironc a4bfa13721 references to not any more existing module dtgs removed.
dtgs%have_task_groups -> dffts%have_task_groups in lr_readin.f90... it should work but please check !


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13753 c92efa57-630b-4861-b058-cf58834340f0
2017-08-21 12:51:03 +00:00
degironc 3e6b4f8e76 MAJOR restructuring of the FFTXlib library
In real space processors are organized in a 2D pattern.

Each processor owns data from a sub-set of Z-planes and a sub-set of Y-planes.
In reciprocal space each processor owns Z-columns that belong to a sub set of
X-values. This allows to split the processors in two sets for communication
in the YZ and XY planes.
In alternative, if the situation allows for it, a task group paralelization is used
(with ntg=nyfft) where complete XY planes of ntg wavefunctions are collected and Fourier
trasnformed in G space by different task-groups. This is preferable to the Z-proc + Y-proc
paralleization if task group can be used because a smaller number of larger ammounts of 
data are transferred. Hence three types of fft are implemented: 
 
  !
  !! ... isgn = +-1 : parallel 3d fft for rho and for the potential
  !
  !! ... isgn = +-2 : parallel 3d fft for wavefunctions
  !
  !! ... isgn = +-3 : parallel 3d fft for wavefunctions with task group
  !
  !! ... isgn = +   : G-space to R-space, output = \sum_G f(G)exp(+iG*R)
  !! ...              fft along z using pencils        (cft_1z)
  !! ...              transpose across nodes           (fft_scatter_yz)
  !! ...              fft along y using pencils        (cft_1y)
  !! ...              transpose across nodes           (fft_scatter_xy)
  !! ...              fft along x using pencils        (cft_1x)
  !
  !! ... isgn = -   : R-space to G-space, output = \int_R f(R)exp(-iG*R)/Omega
  !! ...              fft along x using pencils        (cft_1x)
  !! ...              transpose across nodes           (fft_scatter_xy)
  !! ...              fft along y using pencils        (cft_1y)
  !! ...              transpose across nodes           (fft_scatter_yz)
  !! ...              fft along z using pencils        (cft_1z)
  !
  ! If task_group_fft_is_active the FFT acts on a number of wfcs equal to 
  ! dfft%nproc2, the number of Y-sections in which a plane is divided. 
  ! Data are reshuffled by the fft_scatter_tg routine so that each of the 
  ! dfft%nproc2 subgroups (made by dfft%nproc3 procs) deals with whole planes 
  ! of a single wavefunciton.
  !

fft_type module heavily modified, a number of variables renamed with more intuitive names 
(at least to me), a number of more variables introduced for the Y-proc parallelization.

Task_group module made void. task_group management is now reduced to the logical component
 fft_desc%have_task_groups of fft_type_descriptor type variable fft_desc.

In term of interfaces, the 'easy' calling sequences are

SUBROUTINE invfft/fwfft( grid_type, f, dfft, howmany )

  !! where:
  !! 
  !! **grid_type = 'Dense'** : 
  !!   inverse/direct fourier transform of potentials and charge density f
  !!   on the dense grid (dfftp). On output, f is overwritten
  !! 
  !! **grid_type = 'Smooth'** :
  !!   inverse/direct fourier transform of  potentials and charge density f
  !!   on the smooth grid (dffts). On output, f is overwritten
  !! 
  !! **grid_type = 'Wave'** :
  !!   inverse/direct fourier transform of  wave functions f
  !!   on the smooth grid (dffts). On output, f is overwritten
  !!
  !! **grid_type = 'tgWave'** :
  !!   inverse/direct fourier transform of  wave functions f with task group
  !!   on the smooth grid (dffts). On output, f is overwritten
  !!
  !! **grid_type = 'Custom'** : 
  !!   inverse/direct fourier transform of potentials and charge density f
  !!   on a custom grid (dfft_exx). On output, f is overwritten
  !! 
  !! **grid_type = 'CustomWave'** :
  !!   inverse/direct fourier transform of  wave functions f
  !!   on a custom grid (dfft_exx). On output, f is overwritten
  !! 
  !! **dfft = FFT descriptor**, IMPORTANT NOTICE: grid is specified only by dfft.
  !!   No check is performed on the correspondence between dfft and grid_type.
  !!   grid_type is now used only to distinguish cases 'Wave' / 'CustomWave' 
  !!   from all other cases
                                                                                                 

Many more files modified.




git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13676 c92efa57-630b-4861-b058-cf58834340f0
2017-08-01 20:31:02 +00:00
degironc 4636bca635 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 12:19:19 +00:00
degironc 7fd27ba0ad UtilXlib directory created to contain a library (libutil.a) for
basic operations: error handling, timing clocks, interfaces to basic mpi 
calls, find free units...
These routines are moved from Modules and dependencies to other modules
are removed. 

MANY files are updated to comply with the move.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13629 c92efa57-630b-4861-b058-cf58834340f0
2017-07-26 11:15:20 +00:00
giannozz a42f9a32a6 Maybe I should compile first, commit later?
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13607 c92efa57-630b-4861-b058-cf58834340f0
2017-07-18 17:47:18 +00:00
giannozz 93832116a9 Some more minor C-fortran cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13606 c92efa57-630b-4861-b058-cf58834340f0
2017-07-18 17:35:40 +00:00
degironc e1d6b18de9 more changes at the smmothing of beta- and q-funcions
US variable qq renamed qq_nt and a new variable qq_na added
because in real space the integral may depend (slightly) on
the atomic position and an atomic value is needed to compute
exactly normalizable wfc.  
Whenever realspace tricks are not used  qq_nt is used.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13604 c92efa57-630b-4861-b058-cf58834340f0
2017-07-15 23:16:18 +00:00
timrov 6046930009 In the last commit I meant "input_parameters", and not "input_variables".
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13594 c92efa57-630b-4861-b058-cf58834340f0
2017-07-12 09:17:58 +00:00
timrov c2ab11bec7 The variable assume_isolated (from input_variables) is no longer declared in TDDFPT/src/lr_readin.f90,
because the compilation of TDDFPT with Environ was crashing (without Environ it was fine).
General comment by Paolo: "The idea is that input_variables serves as a temporary storage 
for variables read from input, that have to be subsequently copied into module variables. 
Only variables in modules, not in input_variables, should be subsequently used."



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13593 c92efa57-630b-4861-b058-cf58834340f0
2017-07-12 09:12:12 +00:00
giannozz 415527d8ef Beginning of cleanup for charge density I/O: PW-specific routines separated
from generic one. read/write_rho => read/write_scf for structure rho.
read/write_rho_only => read/write_only, moved to Modules/xml_io_base.f90.
Nothing substantial, but beware side effects


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13502 c92efa57-630b-4861-b058-cf58834340f0
2017-05-09 20:04:16 +00:00
timrov 6a2508049b Added an example how to use turboDavidson with hybrid functionals
to compute absorption spectrum of the CH4 molecule


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13452 c92efa57-630b-4861-b058-cf58834340f0
2017-04-04 12:14:01 +00:00
giannozz 10c51c9f86 I like this way of setting/unsetting ace better than the previous one
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13430 c92efa57-630b-4861-b058-cf58834340f0
2017-03-22 20:58:27 +00:00
giannozz 4cc2289089 ACE is now the default (really!) for scf calculations; disabled for TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13412 c92efa57-630b-4861-b058-cf58834340f0
2017-03-19 10:58:41 +00:00
giannozz e2cfdaa33b Compilation error with environ: assume_isolated is not defined
(please check that all we need is to define the variable)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13403 c92efa57-630b-4861-b058-cf58834340f0
2017-03-14 13:02:31 +00:00
timrov 9e6013a8fd Added a new reference about an application of turboEELS to bulk bismuth
including the spin-orbit coupling effect


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13384 c92efa57-630b-4861-b058-cf58834340f0
2017-03-07 09:14:07 +00:00
timrov 4966de4cb4 The keyword ltammd (Tamm-Dancoff approximation) was missing in the
namelist lr_dav of the turboDavidson code of TDDFPT (courtesy of Gloria Capano)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13339 c92efa57-630b-4861-b058-cf58834340f0
2017-02-23 14:29:17 +00:00
timrov cc8a5a7db8 Minor changes in the Makefile of the TDDFPT+Environ (Davidson) example
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13329 c92efa57-630b-4861-b058-cf58834340f0
2017-02-20 09:38:25 +00:00
giannozz 464a9a2062 More cleanup of double-precision complex that weren't. In the vast majority
of cases, there is no difference and it's just aesthetic, but in some cases 
a tiny error may have been corrected - please verify


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13316 c92efa57-630b-4861-b058-cf58834340f0
2017-02-17 14:10:00 +00:00
pietrodelugas 4b3aae6dd6 updated EELS examples to new qe current version
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13299 c92efa57-630b-4861-b058-cf58834340f0
2017-02-10 09:31:42 +00:00
giannozz 3dce174c0d Module "ktetra" taken out of pwcom.f90 in view of some additions coming.
Variable "ltetra" moved to common "klist" together with all other variables
setting occupations. All make.depend updated. Should be harmless.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13204 c92efa57-630b-4861-b058-cf58834340f0
2016-12-21 14:23:06 +00:00
timrov 93c1a565db Update to the documentation about the input parameter d0psi_rs in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13201 c92efa57-630b-4861-b058-cf58834340f0
2016-12-19 09:20:45 +00:00
timrov 0eccdee299 Minor changes: changed a name of the routine in the error message
and removed a wrong comment in the code


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13199 c92efa57-630b-4861-b058-cf58834340f0
2016-12-16 17:29:18 +00:00
giannozz 229692d720 Cleanup of FFTXlib:
1) routines fwfft and invfft moved out of file fft_interfaces.f90 into new
   file fft_fwinv.f90. Prevents massive recompilation if something changes
   in the FFT routines.
2) machine-dependent fft_scalar.*.f90 are now modules with different names,
   conditionally included into fft_scalar with a USE, no longer an #include.
   Avoids trouble with dependencies, allow simplification of makedeps.sh.
All changes should be harmless, but I have tested only FFTW, FFTW3, DFTI.
Please let me know if there is any problem



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13185 c92efa57-630b-4861-b058-cf58834340f0
2016-11-27 21:43:15 +00:00
giannozz 6c980121fe Removal of unused modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13184 c92efa57-630b-4861-b058-cf58834340f0
2016-11-25 21:10:06 +00:00
giannozz 57fdf2f9ad make.depend updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13180 c92efa57-630b-4861-b058-cf58834340f0
2016-11-24 14:35:51 +00:00
giannozz 78b22ce356 Minor cleanup, removal unused references to parallel_include
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13175 c92efa57-630b-4861-b058-cf58834340f0
2016-11-23 19:54:19 +00:00
spigafi f0012608ea Minor changes, mostly to cope with 'make -j'
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13051 c92efa57-630b-4861-b058-cf58834340f0
2016-10-01 17:12:37 +00:00
kokalj ddb98b1515 Improved handling of dependencies between input_xx.xsl and resulting INPUT_*.html|txt
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13025 c92efa57-630b-4861-b058-cf58834340f0
2016-09-26 14:19:13 +00:00
giannozz bd0f26b277 ColorCalculator downloads the needed java code, courtesy of Michael Banks
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13011 c92efa57-630b-4861-b058-cf58834340f0
2016-09-23 16:54:06 +00:00
timrov 53e71891e7 Update of README in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13006 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 17:15:48 +00:00
timrov dc6a9d2ef5 In the last commit make.depend was containing Environ-plugin-related stuff
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13003 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 14:57:05 +00:00
timrov b684ec531d Updated/extended the list of references for citations in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13002 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 14:44:18 +00:00
timrov bf263f339f Improved an example of using TDDFPT (Davidson) + Environ.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13000 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 13:50:40 +00:00
timrov 18e7be609b Improved the example of using TDDFPT (Lanczos) + Environ.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12999 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 13:36:43 +00:00
timrov 88279ea79b Added an example for testing the turbo_davidson.x code
with ultrasoft pseudopotentials.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12994 c92efa57-630b-4861-b058-cf58834340f0
2016-09-21 11:48:39 +00:00
timrov 6008a146ba Improved the example of using turbo_davidson.x for computing
the absorption spectrum of the CH4 molecule in vacuum.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12990 c92efa57-630b-4861-b058-cf58834340f0
2016-09-20 15:44:51 +00:00
spigafi 70a74abcc4 Ifdef preprocessor macro refactoring (TDDFPT)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12974 c92efa57-630b-4861-b058-cf58834340f0
2016-09-18 14:57:34 +00:00
giannozz 6468059ea3 Ooops ... forgot to change the arguments of divide_et_impera
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12894 c92efa57-630b-4861-b058-cf58834340f0
2016-08-31 17:25:16 +00:00
giannozz 95cf2364ef Too many hyphens in "helpdoc --version", the correct syntax is "-version"
Now "make doc" works again


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12886 c92efa57-630b-4861-b058-cf58834340f0
2016-08-30 16:54:59 +00:00
giannozz 7ce7d161bf Makefile simplification: TOPDIR is used to define the same LIBOBJS everywhere.
In case of trouble, see instruction in the make.inc file.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12840 c92efa57-630b-4861-b058-cf58834340f0
2016-08-25 19:27:31 +00:00
kokalj 27477e4f7e adding version number to INPUT_*.html|txt
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12813 c92efa57-630b-4861-b058-cf58834340f0
2016-08-19 18:00:18 +00:00
kokalj b8cbac42ab simplifying ...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12812 c92efa57-630b-4861-b058-cf58834340f0
2016-08-19 17:26:41 +00:00
kokalj da19abcb10 adding input_xx.xsl dependency for *.def --> *.html transformation
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12811 c92efa57-630b-4861-b058-cf58834340f0
2016-08-19 17:24:52 +00:00
degironc 1b63d71811 indexing of real_space related variable betasave(:,:,:) changed from
(1:nat,1:nhm,1:maxir) to (1:maxir,1:nhm,1:nat) so that the needed 
operations are performed on contiguous memory positions.

calbec, add_vuspsi, .. etc   are waaay faster.

changed the indexing also in the only plase in TDDFPT where betasave was 
referred. I dont know if it appears in any hidden project



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12662 c92efa57-630b-4861-b058-cf58834340f0
2016-08-04 11:42:11 +00:00
ccavazzoni 43b253226c - logical flag have_task_groups removed from FFT type.
- FFT type now do not have any information about task group:
  no need to temporary change the value of variable...
- When task group are not needed symple do not use "dtgs" data type
- FFT interfaces called with FFT datatype ONLY, do not perform
  task groups trics any longer, this should simply thing a bit....




git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12628 c92efa57-630b-4861-b058-cf58834340f0
2016-07-29 16:37:19 +00:00
ccavazzoni de2a01c4e6 - Task groups variables moved form FFT type to a new data type
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12626 c92efa57-630b-4861-b058-cf58834340f0
2016-07-29 14:25:22 +00:00
timrov 4627f7e55b Fixed a bug in turboTDDFT which was appearing if empty states were also computed.
This bug is related to the variable nwordwfc, which depends on the number of bands.
In turboTDDFT if empty states are computed (which is not needed for turbo_lanczos.x, but allowed,
and in fact the code will simply skip empty states), the global variable nbnd is set equal to 
nbnd_occ, i.e. only occupied bands (this is not my idea), which is bad, because global 
variables should not change their values. Due to such a confusion, I introduced this bug
some time ago. Now this is fixed.  


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12603 c92efa57-630b-4861-b058-cf58834340f0
2016-07-22 13:36:45 +00:00
timrov acaff05dda 1) make.sys is replaced by make.inc in TDDFPT/Examples
2) Fixed a bug in the case TDDFPT + hybrids + k points related to the fact that the so-called array "revc_int_c" was not allocated (this option is disabled, because it has not been tested thoroughly yet, but we keep it functional)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12543 c92efa57-630b-4861-b058-cf58834340f0
2016-06-26 17:34:04 +00:00
giannozz 02ce4df8d6 make.sys => make.inc. All other codes using make.sys should modify their build
mechanism accordingly.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12539 c92efa57-630b-4861-b058-cf58834340f0
2016-06-25 07:26:50 +00:00
timrov 1534118512 In the previous commit make.depend contained routines, which are not needed.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12515 c92efa57-630b-4861-b058-cf58834340f0
2016-06-21 13:30:01 +00:00
timrov 288b3e3e9c Miscellaneous improvements in TDDFPT:
1) Use the new routine h_prec (preconditioning matrix)
2) Use the routine g2_kin
3) Adding more documentation
4) Extension of compute_d0psi_rs to k-points version


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12514 c92efa57-630b-4861-b058-cf58834340f0
2016-06-21 12:35:43 +00:00
timrov 49b7ca865e 1) TDDFPT + hybrids must be used with d0psi_rs=.true.
(treatment of the dipole in the real space).
   This is explained in Ge et al., CPC 185, 2080 (2014). 
   Upgrading the examples and putting a warning in the code.
2) In my last commit (r12487) I wrote a misleading comment:
   instead of igk(1:3) and igk_k(1:3,ik) there is of course
   igk(ig) and igk_k(ig,ik), where ig runs over G vectors.
   In the code everything is fine (only the comment was wrong).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12489 c92efa57-630b-4861-b058-cf58834340f0
2016-06-13 10:52:11 +00:00
timrov 7e4e1d9228 Upgrade of the TDDFPT codes using the new logic of the global indices igk_k(1:3,ik) and ngk(ik).
More specificaly:
1) Remove global variable npw (from wvfct) and use ngk(ik) (for optical TDDFPT codes) 
   or ngk(ikk) with ikk=ikks(ik) (for turboEELS). In some routines, ngk is assigned to
   the local variable npw, i.e. npw=ngk(ik), and in other routines ngk is used directly.
2) Remove global indices igk(1:3) (from wvfct) and use igk_k(1:3,ik) (for optical TDDFPT codes)
   or igk_k(1:3,ikk) with ikk=ikks(ik) (for turboEELS).
3) Remove global variable npwq (from qpoint) and use the local variable with the same name,
   which is defined as npwq=ngk(ikq) with ikq=ikqs(ik) (i.e. index of the point k+q).
4) Remove global index variable igkq(1:3) (from qpoint) and use the global index variable
   igk_k(1:3,ikq) with ikq=ikqs(ik).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12487 c92efa57-630b-4861-b058-cf58834340f0
2016-06-12 17:26:36 +00:00
giannozz 0e6d449bea Statically dimensioned vector "nbnd_occ" made dynamical.
BEWARE: I think I have modified all codes that needed it, but please
1) verify that both allocation and deallocation are made in the proper place
2) update other codes not under svn that make usage of such variable


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12451 c92efa57-630b-4861-b058-cf58834340f0
2016-06-01 08:30:58 +00:00
giannozz 0014bec604 Call to cft_wave changed so as to remove need to pass indices. Note that this
will break any code not in svn using cft_wave. Should work but please check.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12449 c92efa57-630b-4861-b058-cf58834340f0
2016-05-30 17:39:48 +00:00
timrov 44f00cb28c Since the routine h_psi should be used also in the linear-response codes (instead of h_psiq), I use it in the turboEELS code. More precisely, I call directly the routine ch_psi_all instead of calling h_psiq and s_psi in the routine TDDFPT/lr_apply_liouvillian_eels. Added some clarification comments. Lastly, in the routine ch_psi_all I added a condition "IF (alpha_pv.NE.0.0d0) THEN compute alpha_pv P_v wfct", which allows one to avoid computing P_v when alpha_pv=0 (e.g. in the turboEELS code).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12442 c92efa57-630b-4861-b058-cf58834340f0
2016-05-30 09:53:34 +00:00
timrov b6bbb80483 Re-introduced back the logical variable "tddfpt", because it is used also by the Environ plugin and not only it was used by PHonon. I have put more clear comments about this in order not to forget. Maybe better solutions can be found in order to avoid the use of the variable tddfpt.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12433 c92efa57-630b-4861-b058-cf58834340f0
2016-05-25 18:25:03 +00:00
timrov ef4a28ff1a Several changes:
1) Moved some TDDFPT-specific cases from the general routine LR_Modules/ch_psi_all.f90 to the TDDFPT routines;
2) Deleted the variable "tddfpt", because it is no longer needed anywhere (in the older versions of the code this variable was used to tell to the PHonon routines about TDDFPT specific operations);
3) Some other minor changes in TDDFPT.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12432 c92efa57-630b-4861-b058-cf58834340f0
2016-05-25 17:49:25 +00:00
giannozz 41a6780bd8 I think this is needed in order to call h_psi instead of h_psiq with task
groups - untested


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12430 c92efa57-630b-4861-b058-cf58834340f0
2016-05-24 07:57:45 +00:00
timrov ef8089e87b Put the routine dv_of_drho in the module (called dv_of_drho_lr), because it contains an optional array drhoc (response core charge density). Without putting dv_of_drho in the module, the code was stopping (if it was compiled with the XLF compiler (on BG/Q)) when making a check "if (add_nlcc .and. .not.present(drhoc))" in the routine dv_of_drho. Thanks to Lorenzo Paulatto and Paolo Giannozzi for the discussions about how to solve this bug!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12414 c92efa57-630b-4861-b058-cf58834340f0
2016-05-17 13:58:51 +00:00
giannozz df30a665aa Explicit preprocessing produces *_tmp.f90 files instead of *.F90 files, to
prevent trouble with OS-X. May or may not work (it won't unless configure
is updated: please somebody with v.2.63 of autoconf do it), may turn out to
be obsolete anyway.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12364 c92efa57-630b-4861-b058-cf58834340f0
2016-04-27 14:53:38 +00:00
giannozz ff7471ead0 Output of non-writing processes should not be redirected to /dev/null: it is
useless (the call to "environment_set" already does that) and breaks Windows


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12357 c92efa57-630b-4861-b058-cf58834340f0
2016-04-25 18:40:02 +00:00
timrov 08c746f3eb Updated the example for TDDFPT (Davidson) + Environ for the CH4 molecule.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12341 c92efa57-630b-4861-b058-cf58834340f0
2016-04-22 17:35:51 +00:00
timrov 625b0717d4 Updated the example for TDDFPT (Davidson) for the CH4 molecule in vacuum.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12340 c92efa57-630b-4861-b058-cf58834340f0
2016-04-22 17:28:26 +00:00
timrov fb6acccbd8 Erratum to my previous commit: the commited files were wrong, now I commit the correct files.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12339 c92efa57-630b-4861-b058-cf58834340f0
2016-04-22 17:16:38 +00:00
timrov c25b63bdea TDDFPT (Lanczos) + Environ: Adding a reference spectrum and updating the output reference files.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12338 c92efa57-630b-4861-b058-cf58834340f0
2016-04-22 17:08:55 +00:00
timrov 97e5f9e726 Added a warning that TDDFPT + Hubbard U is not implemented.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12326 c92efa57-630b-4861-b058-cf58834340f0
2016-04-21 16:08:23 +00:00
timrov 0e378995a7 Minor changes: update and correct some comments in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12284 c92efa57-630b-4861-b058-cf58834340f0
2016-04-06 10:38:04 +00:00
giannozz 4c34ba3ab3 make.depend updated; added missing make.depend for bse
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12240 c92efa57-630b-4861-b058-cf58834340f0
2016-03-23 14:55:51 +00:00
timrov 38f6d3f3ab TDDFPT: Re-introduced a (second) call to lr_ortho in lr_lanczos, because it turns out to be important for the stability of the Lanczos chain when pseudo_hermitian=.false. I think that this issue must be investigated in a more detail, because in the old versions of the TDDFPT code such an auxiliary call to lr_ortho was not needed, whereas now it is.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12228 c92efa57-630b-4861-b058-cf58834340f0
2016-03-20 12:49:40 +00:00
timrov a020de3d7c Some optimization of the TDDFPT code. Namely, the routine lr_apply_liouvillian(_eels) was giving sevc1_new on the output, but it was never used. So, it was removed. Also, some save of RAM due to the fact that there were sevc1_new(:,:,:,1) and sevc1_new(:,:,:,2), but only one of them was used (and computed) in lr_lanczos. Hence, I defined a new array sevc1_new(:,:,:), which replaces the former one and hence save RAM.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12227 c92efa57-630b-4861-b058-cf58834340f0
2016-03-20 12:12:38 +00:00
timrov 80fcd1842c TDDFPT: In previous commit I forgot to change the sign in one routine, since "orthogonalize" applies -P_c^+, but I needed +P_c^+.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12226 c92efa57-630b-4861-b058-cf58834340f0
2016-03-19 19:25:02 +00:00
timrov 613ee5577a Several changes:
1) Added a flag dpsi_computed in the subroutine orthogonalize.f90 in LR_Modules. The meaning of this flag is described in the header of that routine. It was needed to generalize this subroutine. In short, this flag controls whether S*evq was already computed before or it must be computed inside of orthogonalize. If this idea does not look good for someone, then a better strategy should be found. I decided to introduce this new flag in order to make minimal changes in the PHonon code. 
2) TDDFPT: The use of lr_ortho (which is a modified version of orthogonalize.f90) was replaced in several places by orthogonalize. Still in several places of the turboDavidson code there are calls to lr_ortho, which should be replaced by orthogonalize if possible. In the future lr_ortho should be removed and orthogonalize should be used instead. This is done for the sake of unification of the linear response codes in QE.
3) TDDFPT: The orthogonalization to the valence states manifold (orthogonalize) has been moved from lr_lanczos to lr_apply_liouvillian, which is now in correspondance with the definition of the Liouvillian superoperator implemented in lr_apply_liouvillian. USPP is a special case, and hence the property S^-1 P_c^+ = P_c S^-1 has been used to make such a move of the call to orthogonalize (old call to lr_ortho).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12225 c92efa57-630b-4861-b058-cf58834340f0
2016-03-19 19:04:05 +00:00
timrov f8ef304503 - revert usage of INTENT(IN) for FFT data type in TDDFPT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12210 c92efa57-630b-4861-b058-cf58834340f0
2016-03-13 16:56:30 +00:00
timrov 0ed5e28a85 TDDFPT was not compiling after recent changes in FFTXlib. Now it compiles.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12208 c92efa57-630b-4861-b058-cf58834340f0
2016-03-13 13:52:06 +00:00
timrov 01bf571bd4 The TDDFPT module is no longer dependent on PHonon. All the dependencies were moved to LR_Modules.
Further reunification of TDDFPT with the routines in LR_Modules can and should be done.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12183 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 15:47:13 +00:00