Commit Graph

424 Commits

Author SHA1 Message Date
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
timrov f68259ade0 Deleting the old copy of setqmod.f90 from PHonon
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12182 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 14:07:43 +00:00
timrov 2673f7b421 Remove the dependence from the PHonon variable
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12179 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 13:59:38 +00:00
timrov f1be423d66 Moved the variables dpqq and dpqq_so from "phus" to "lrus".
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12175 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 13:04:42 +00:00
timrov a6e3e92c08 Update make.depend
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12174 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 11:58:14 +00:00
timrov c21589f60e Removed some other dependencies of TDDFPT on PHonon variables (namely, units_ph -> lrwfc, iuwfc).
While doing this, adapted the turboEELS code to use get_buffer instead of davcio.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12173 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 11:56:59 +00:00
timrov 1b8c581d5f Moved parts of the PHonon code, which compute nbnd_occ and alpha_pv,
from phq_setup.f90 to separate subroutines setup_nbnd_occ.f90 
and setup_alpha_pv.f90 in LR_Modules. The reason for this is always the same:
these parts of PH were duplicated eslewhere (in TDDFPT) and now it is
time to merge them and move to LR_Modules.
Also some small changes in TDDFPT: removing the dependencies on PH variables.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12172 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 10:58:15 +00:00
timrov 0bc6bc576f Remove the dependence of TDDFPT on the PH variable 'tmp_dir_phq'
by creating a new variable 'tmp_dir_lr' in TDDFPT.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12169 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 17:06:59 +00:00
timrov 157e732d14 Update make.depend
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12168 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 16:35:42 +00:00
timrov 51c86d33ad Moved a part of the PHonon code (which computes the derivative of the XC potential)
from the routine PHonon/PH/phq_setup.f90 to a new routine "setup_dmuxc.f90"
in LR_Modules. The reason for this action is that the same duplicated part of the
code was present in TDDFPT. Now both PHonon and TDDFPT use the same routine in
LR_Modules/setup_dmuxc.f90. 


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12167 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 16:33:33 +00:00
timrov a289e4337e Update Makefile, make.depend and remove old copies of setup_dgc.f90 and compute_vsgga.f90 from PHonon/PH
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12166 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 15:41:03 +00:00
timrov a82139b05a Minor changes
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12163 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 15:24:59 +00:00