Commit Graph

421 Commits

Author SHA1 Message Date
fabrizio22 2a27424530 XClib - dmxc wrapper 2021-01-06 15:36:00 +01:00
fabrizio22 0336b35bc3 XClib - gga wrapper 2021-01-06 15:36:00 +01:00
Daniele Cesarini b2a4a6b89f Fixed shared library compilation 2020-11-23 12:16:32 +01:00
Federico Ficarelli 323bce3a9d Add missing sources to targets 2020-09-29 19:44:33 +02:00
Federico Ficarelli 921853902e Update build system to latest changes from upstream 2020-09-29 18:11:33 +02:00
Daniele Cesarini fc09ef40e4 Removed cmake function preprocessing and replaced with _qe_add_global_target 2020-09-29 18:11:32 +02:00
Daniele Cesarini 90840d6caf Fix preprocessor flags for Fortran files 2020-09-29 18:11:32 +02:00
Daniele Cesarini 9246f191ac Restricted dependency visibility for cmake targets 2020-09-29 18:11:31 +02:00
Daniele Cesarini d912e3905c Added missing QE packagies to cmake 2020-09-29 18:11:31 +02:00
Daniele Cesarini 5982f5b9fd Added LR_Modules library to cmake 2020-09-29 18:11:31 +02:00
Paolo Giannozzi d59300e883 make.depend files and related script updated 2020-08-17 19:04:40 +02:00
Samuel Ponce 2ad2c31a36 Missing variables initialization.
In some cases this can cause issues if the compiler does not set to 0
but to random values.
2020-08-13 18:44:33 +02:00
giannozz 4ac525630c Merge branch 'last_minutes' into 'develop'
Minor changes: documentation, error message

See merge request QEF/q-e!1054
2020-08-04 07:35:56 +00:00
Paolo Giannozzi e5cff91a5d Incorrect detection of inversion symmetry in phonons fixed (Phil Wang, JHU).
I think a better fix would be to move the detection of the inversion symmetry
into function "copy_sym" (not making assumptions on which operation is the
inversion, and transforming the function into a subroutine) but this must be
done with care and far from a release. The current fix seem to be 100% safe.
2020-08-03 19:20:31 +02:00
Iurii Timrov cf5fa2320e turboEELS with noncolin=.true. and lspinorb=.false.
is not implemented, so an "errore" message was added to make the
code stop smoothly in this case.
2020-07-29 16:01:00 +02:00
Oscar Baseggio d7a34f1f56 fix noncolinear case
remove error message
clean some routines
2020-07-29 15:13:55 +02:00
Oscar Baseggio 4384d999ed fix uspp bug 2020-07-15 11:03:36 +02:00
Paolo Giannozzi 11b30f49d7 Module modes brought back to where it belong. Dependencies updated 2020-07-15 07:27:17 +00:00
giannozz 6982ef6b37 Merge branch 'sternheimer' into 'develop'
Sternheimer for turbo_eels.x

See merge request QEF/q-e!961
2020-07-13 16:33:51 +00:00
Oscar 855844dad1 solve make.depend conflict
remove _tpw routines
2020-07-13 16:33:51 +00:00
Paolo Giannozzi cad300bbae One more (in capital letters) 2020-07-12 10:21:16 +02:00
Paolo Giannozzi b315c97b00 More removal of zdotc - may or may not work (I think it will) 2020-07-12 10:16:22 +02:00
Iurii Timrov d6252e8633 Bug fixes:
1) Hubbard force and stress was crashing with gfortran
2) PHonon and TDDFPT was crashing in the noncollinear case
2020-07-03 17:40:46 +00:00
Iurii Timrov 9b9630c963 Implementation of Hubbard forces and stress using
ortho-atomic orbitals.
2020-06-29 18:55:32 +02:00
T. Thonhauser f047985b92 vdW-DF: Implementing vdW-DF3-opt1, vdW-DF3-opt2, and vdW-DF-C6 & inlc cleanup
We implemented the new vdW-DF type functionals vdW-DF3-opt1, vdW-DF3-opt2, and
vdW-DF-C6. For purposes of non-local functional implementation and evaluation,
we also grouped similar implementations into ranges for the "inlc" variable. To
this end, we have reserved inlc=1 to inlc=25 for vdW-DF development and we
moved rVV10 to inlc=26. This allows for a cleaner code when parsing through the
various non-local functionals. In addition, we have removed all instances of
"inlc" and "get_inlc" in several source files where they are no longer needed.
This work was performed by T. Thonhauser and is supported by NSF Grant No.
1712425.
2020-05-21 12:49:41 -04:00
Paolo Giannozzi d149cd0549 Previous fix would not work with degenerate eigenvalues 2020-04-26 14:48:59 +00:00
Paolo Giannozzi 676a7274c9 Avoid divisions by zero
In a material with a gap treated with tetrahedra, the density of state at Ef
is exactly zero and the Ef shift gives NaN if computed with no check. Also:
there are several other divisions by zero in the tetrahedron method for
phonons, harmless in practice but hindering usage of compiler debug options.
2020-04-26 13:59:11 +00:00
giannozz 1b072fbc4f First compiling version of QE with initial "pseudolib" in upflib/.
Most of the changes consist in small updates to Makefile and make.depend and
in the replacement of module "parameters" with "upf_params" whenever variables
lmaxx and lqmax are USEd. Routine "read_pseudo" moved back to Modules/;
"simpsn" moved to upflib/; a copy of "matches" temporarily added to upflib/

Note that everything compiles (except EPW) but nothing has been tested yet!
2020-04-25 19:13:15 +00:00
Iurii Timrov e70f8967e7 1. Debugging of the DFT+U implementation with "background"
2. Added tests to the test-suite for DFT+U(+V) with "background"
2020-04-24 17:45:01 +02:00
Iurii Timrov 756e135cd6 1. Extension of the HP code to compute also inter-site V (DFT+U+V case)
2. Extension of the XSpectra code to DFT+U+V
3. Hubbard forces and stress: now the (ortho-)atomic orbitals
   are read from file (and not recomputed as before)
4. Added examples for the DFT+U+V case in PW and HP
5. Various other small improvements and optimizations
2020-04-17 11:01:51 +00:00
Paolo Giannozzi 791e594e01 Dependencies updated 2020-03-31 18:04:08 +02:00
Paolo Giannozzi 21fe34060c Interpolation table in G space
Currently the interpolation table for USPP Q functions computes q_i=Q(|G_i|) on
a grid of equally spaced |G_i| ***in units of 2\pi/a0***. As a consequence, the
number of points of the grid for a given cutoff depends upon the size of the
cell (noticed by Anton Kozhevnikov). This does not make sense: the Q functions
are atomic-like quantities and the maximum |G| depends upon the cutoff.
I moved the interpolation table from 2\pi/a0 units to atomic units, as it is
done everywhere else in QE. I am less and less convinced that storing k-points
and G-vectors in 2\pi/a0 units is a good idea, by the way.

BEWARE: this patch changes the behavior of routines init_us_1 and qvan2,
has the potential to break external codes that use QE routines.
2020-03-12 22:05:47 +01:00
giannozz 0db1ca8624 Workarounds and fixes for yesterday's commits 2020-02-29 08:59:35 +01:00
Paolo Giannozzi f97c7a86c4 Some corrections needed to pass the tests:
made a second copy of star_q;
setup_pw set to true only when needed
2020-02-28 16:28:23 +00:00
andreaurru247 3e5fe4a8f3 Last corrections after rebase 2020-01-29 15:25:31 +01:00
andreaurru247 d7bedb5acf Developments on the LR_Modules routines to implement the calculation of the phonon frequencies in the noncollinear magnetic case. Note: the calculation of the Born effective charges does not work in this case yet, it will be fixed by a further development 2020-01-29 14:53:00 +01:00
Paolo Giannozzi 65ad76580f Removal of unused variables, added one ONLY 2020-01-13 12:25:42 +00:00
fabrizio22 3e30f8d07a A rho-threshold fix for PH-PAW 2019-12-05 10:34:34 +01:00
giannozz 1232eb831e Small fixes
For some obscure reason the new test for DFT+U phonon has large variations
in the number of scf iterations: 34 in the benchmark, 27 to 30 on buildbot.
While waiting for better ideas, the new benchmark has been updated to 29
iterations so that it falls close to buildbot values
2019-11-30 10:08:02 +01:00
Paolo Giannozzi b956873a4e Removal of obsolete variable was not complete 2019-11-27 07:34:08 +01:00
T. Thonhauser 7ae21fc668 Calculate vdW kernel on the fly: fourth commit
In this commit, the entire Quantum Espresso environment is updated so
that "make all" succeeds and produces functional codes. The resulting
codes were tested with the test-suite and all related tests passed. In
addition, I did some more extensive testing with van der Waals systems,
using the option "verbosity = 'high'" so that the non-local corr. energy
is written out explicitly; in all cases, results were identical to
qe-6.4.1 (also tested in parallel).

Overall, I updated 21 Fortran source files, mostly related to the
handling of the kernel file name(s). Modules/xc_rVV10.f90 saw more
substantial changes and now also computes the kernel on the fly. The
two routines PW/src/generate_rVV10_kernel_table.f90 and
PW/src/generate_vdW_kernel_table.f90 are now removed.

In addition, I updated the developer manual and the PW user guide. I
edited two Makefiles and ran "make depend", resulting in 6 changed
make.depend files. I updated 5 scripts and one README file, mostly
related to examples.

Finally, some of the reference files in the test suite and in some
examples had a rather old format and a "diff" after running those cases
shows unnecessarily many differences. I thus created new reference data
for the vdW cases in the test suite (running "make create-reference-pw")
and I updated the PHonon/examples/example16 and
PW/examples/vdwDF_example references (23 files updated, 11 files
deleted, and 6 files added; the file and directory structure of the
delta-scf calculations needed some more substantial updating). I also
updated PP/examples/ACF_example/reference_vdw-df-cx/atoms.out.

At this point I will do some final testing and cleaning-up of the code.
The next commit fill be the final commit.
2019-09-23 14:50:52 -04:00
fabrizio22 0932a5b2d5 PHonon with GGA-libxc included 2019-08-22 15:49:25 +02:00
Paolo Giannozzi 96cefd0402 Subspace size for Davidson diagonalization in phonon code reverted to 4:
reduction to 2 requires more though and experiments. Two fixes to comments.
2019-08-09 08:44:38 +02:00
Paolo Giannozzi ebbb788aa8 No need to add a new variable "isolveph" containing information on the
diagonalization for the phonon code: existing variable "isolve" does the job.
make.depend updated
2019-08-07 19:46:20 +02:00
Alberto Otero de la Roza 2e5ab44581 make the isolveph argument of LR_Modules/setup_nscf.f90 non-optional 2019-08-07 11:43:49 +02:00
Alberto Otero de la Roza 8846383a5f resolved merge request conflict in PHonon/PH/phq_readin.f90, reading the &inputph namelist 2019-08-07 11:10:42 +02:00
Alberto Otero de la Roza 54e5239530 add the diagonalization option to ph.x: allows changing the diagonalization method in the non-scf calcs 2019-08-06 00:55:15 +02:00
Oscar Baseggio 48ddc7c47e clean TDDFPT/src/lr_readin.f90
change name:
ph_lanczos_iter.f90 -> LR_Modules/lanczos_pseudohermitian.f90
bo_lanczos_iter.f90 -> LR_Modules/lanczos_nonhermitian.f90
2019-08-05 09:36:46 +02:00
Oscar Baseggio 941f69fb1d create ph_lanczos_iter.f90 and bo_lanczos_iter.f90;
and move lr_dot.f90 from TDDFPT/src to LR_Modules
2019-08-02 16:48:10 +02:00
fabrizio22 48ef4e0f01 init_xc removed and some clean-up 2019-06-25 14:44:26 +02:00
mitsuaki1987 9422b03627 Time reversal symmetry was detected incorrectly for the phonon+restart case.
This caused "cannot remap grid on k-point list" error in opt_tetra_init.
2019-06-19 15:47:03 +09:00
giannozz 1f7cd3bbc0 More XC changes
More cleanup and fixes for reorganized exchange-correlation routines
2019-06-13 17:58:13 +02:00
Paolo Giannozzi d9bbc5e1bf I/O cleanup: routines used to copy xml into QE variables moved to
Modules. They should replace all "readschema" routines in PW.
make.depend updated
2019-06-10 21:35:55 +02:00
Fabrizio Ferrari dfddf86119 init_xc removed except in funct.f90 and other adjustments 2019-06-10 16:00:23 +00:00
giannozz a0f51ac547 Out-of-bound error when converting (tot,magn) to (up,down) rho.
Minor update to release notes
2019-06-06 12:52:16 +00:00
giannozz 2e6417a093 Out-of-bound error when converting (tot,magn) to (up,down) rho.
Minor update to release notes
2019-06-04 13:19:55 +00:00
Fabrizio Ferrari 9a5bc8d5a8 GGA vectorized and libxc functionals included 2019-06-04 07:26:24 +00:00
Iurii Timrov c492ff3a9c Changes in TDDFPT:
1) Bugfix in turboEELS+USPP due to recent changes
(fix by Oleksandr Motornyi and Iurii Timrov)
2) Homogenization of names of subroutines
3) Update of the example 17 for turboEELS+USPP+SOC which
was wrong due to the bug mentioned above.
2019-05-28 14:33:17 +00:00
Paolo Giannozzi f13a280a3e Would-be fix (?) for bug in phonon code with LSDA and core corrections:
there was an out-of-bound error in dgradcorr. I am not sure I understand
the fix (I am actually sure I don't) but it gives the same "zue" and
"zeu" effective charges in a simple test and the same for LDA and LSDA
with no spin polarization. Also: ZDOTC => zdotc, because some machines
need to preprocess zdotc and replace it with the zdotc_wrapper
2019-05-24 21:36:13 +00:00
giannozz 1d562cfe8e Workaround for possible out-of-bound error 2019-05-21 10:46:38 +02:00
giannozz 5f1c57039f Removal of unused array 2019-05-21 09:58:29 +02:00
Iurii Timrov 4be767a828 Changes in TDDFPT related to recent extension of
turboEELS to USPP+SOC:
1) Minor changes here and there
2) Added example 17 testing the implementation of turboEELS+USPP+SOC
3) Modified Makefiles to remove dependencies of TDDFPT on PH routines
(it was mistakenly introduced recently)
4) Removed the routine dveqpsi_us_only.f90 because it is not used
anywhere (it is an analogue of lr_addus_dvpsi.f90)
In the HP code added a check on the variable perturb_only_atom
(only Hubbard atoms are allowed to be perturbed)
2019-05-14 12:28:26 +02:00
Paolo Giannozzi ba6eb8e616 DOS characters CRLF (or whatever it is) removed from recently added
routine: they break the "make depend" machinery. make.depend updated.
2019-05-12 09:14:14 +02:00
fabrizio22 7cabcd6a46 Aligned with develop 2019-05-08 12:14:35 +02:00
fabrizio22 5e5884bf6a master updated 2019-05-08 12:08:43 +02:00
Pietro Delugas e9fc7aebef updated dependencies and fixed few things
* in TDDFPT/src/lr_alloc_init.f90 use bbg allocatable from lrus
* in TDDFPT/src/dveqpsi_us_only.f90 commented the use of inexistent
  optical module
2019-05-03 16:59:07 +02:00
Oleksandr Motornyi 32fa25445d spin-orbit coupling with uspp in turbo_eels code
done by: Oleksandr Motornyi, Andrea Dal Corso, Nathalie Vast.
2019-05-03 16:58:16 +02:00
fabrizio22 1a0fe694bf Aligned with develop 2019-04-09 12:11:23 +02:00
Paolo Giannozzi 215a70b0c8 Variable "ftau" (fractional translations in FFT grid units) is a source
of dangerous confusion: the "true" fractional translations, in crystal
axis units, are in "ft". First batch of removals, notably from smallg_q
(where it was not used) and from code calling it. More will come soon.
Updated release checklist, fixed typo in README.md
2019-04-08 21:19:02 +02:00
fabrizio22 d6917bb0bc dmxc routines extracted from funct 2019-03-11 12:55:50 +01:00
fabrizio22 df10e23ed6 dmxc routines vectorized 2019-03-04 16:39:28 +01:00
Paolo Giannozzi e256a3e8dc [Skip-CI] Makefile and documentation cleanup 2019-02-14 09:45:46 +01:00
Paolo Giannozzi 814c3d5615 Cleanup of parallel modules:
- mp_world and world_comm should be used only in MPI initialization,
  not directly in codes - replaced by mp_images and intra_image_comm
  (except in a few cases whose usage is unclear to me)
- mp_global should be used only to provide initialization routines
  mp_startup, mp_global_end
- specific mp_* modules should be used for parallelization level on *
  (* = images, pools, bands, orhtoh, ...)
Nothing actually changes (I hope) but things will look cleaner if the module
for the required parallelization level is USEd instead of a generic one that
does too meny things at the same time. The final goal of this operation is to
better disentangle the various parallelization levels and to have a better
organized, more granular MPI initialization that does not introduces artificial
and meaningless dependencies. Not done for: PHonon, CPV, TDDFPT, GWW, EPW
2019-01-31 15:51:00 +01:00
fabrizio22 4bc3fed1db merge master with develop2 2019-01-22 11:24:15 +01:00
fabrizio22 af8c1ff355 merge master with develop 2019-01-22 11:13:56 +01:00
fabrizio22 9c87cf7106 full lsda rho conversion 2019-01-21 12:02:37 +01:00
Iurii Timrov 8d077e3f1f Bugfix related to the recent change in the logic of nspin=2.
Changed REAL to DBLE in several places for a higher precision.
2019-01-21 10:46:57 +01:00
fabrizio22 f3114d67e1 merge develop with rho_updw_mz 2019-01-14 11:40:47 +01:00
Iurii Timrov 6bb3eb6008 Bugfix in DFPT+U and HP: there was a small bug
when checking the number of states in the Hubbard
manifold (nwfcU). Thanks to Hao Zeng for reporting the issue.
2018-11-29 12:32:02 +01:00
Iurii Timrov 52a67b19a5 1) Implementation of the PHonon+U code (A. Floris, S. de Gironcoli, E.K.U. Gross,
I. Timrov, B. Himmetoglu, N. Marzari, M. Cococcioni). The code was ported
from QE 5.0.2 to the latest version of QE, by I. Timrov with the help of
A. Floris and M. Cococcioni. Many thanks for the discussions with P. Giannozzi,
P. Delugas, A. Dal Corso, M. Calandra, L. Paulatto about various issues
during the porting. Sorry if I forgot to mention someone.
2) Some small modifications in the HP code in order to be consistent
with the porting of PHonon+U and changes in LR_Modules.
2018-10-30 16:20:32 +01: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 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
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
Stefano De Gironcoli b8f879e0d7 timing using start_clock/stop_clock 2018-08-03 09:27:57 +02:00
Iurii Timrov 239bdc1a44 Moving some routines from PH to LR_Modules 2018-08-01 09:24:48 +00:00
Miguel Carvajal 68ee7b5e87 Rename module wavefunctions_module to wavefunctions 2018-07-12 16:11:48 +02:00
Paolo Giannozzi a929525d7b No valid reason to re-defined IFLAGS inside Makefiles 2018-07-04 16:42:12 +02:00
Paolo Giannozzi 5cb72fd2ef Fixes for two potential out-of-bound errors - Mitsuaki Kawamura 2018-05-15 14:03:33 +02:00
Lorenzo Paulatto (naquite) 3dc516aace Variables dvxc_rr, dvxc_sr, dvxc_ss, dvxc_s were declared intent OUT but I'mp pretty sure they should have been intent IN, as they are used here, not defined 2018-04-23 10:25:28 +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 5f4bf372b6 make.depend updated 2018-01-19 21:05:07 +01:00
Paolo Giannozzi 663e3f1d69 Two more routines computing gradients collected into gradutils, duplicated
versions deleted: "fft_qgradient" and "fft_qgraddot". These are the versions
of fft_gradient_r2r and fft_graddot for complex arrays with exp(iqr) behavior,
fr usage in the phonon code (gradient of Delta rho at finite q). Note that in
phonon, indices of drho_gradient have been reversed as well in vdW-DF routines,
and that the call to dgradcorr has been changed (dfftp is passed as argument)
2018-01-18 15:08:46 +01:00
Paolo Giannozzi a88e82dd2a "numerical_gradient" in vdW-DF and rVV10 replaced by "fft_gradent_r2r".
NOTA BENE: the indices of the array containing the gradient for vdW-DF and
rVV10 functionals have been reverted: now the index of components is the first,
the index  of grid points is the last last. Not sure this is the best choice
but it is the choice done (almost) everywhere else in QE
2018-01-18 09:50:35 +01:00
Paolo Giannozzi 723dc4ef40 Routine "gradrho" moved to gradutils, with new name "fft_gradient_g2r",
while previous "fft_gradient" becomes "fft_gradient_r2r".
Routine "grad_dot" moved to gradutils, with new name "fft_graddot" and
removal of useless variable in the list of argument.
2018-01-16 22:13:52 +01:00
Paolo Giannozzi cc988c0fe2 Functions gradrho and grad_dot made uniform with other similar routined. 2018-01-15 21:41:21 +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
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 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 d6ff342a29 Cleanup: release-notes and make.depend updated, a few commented lines and
useless routine deallocate_gvecs deleted
2017-12-26 19:42:09 +01:00
Carlo Cavazzoni 4cab1886ee indexes nl now taken from fft type 2017-12-24 15:24:26 +01:00
Paolo Giannozzi 8c4a92cdc5 Second copy of "set_bgrp_index" replaced by generic routine "divide" 2017-12-23 22:28:53 +01:00
giannozz 6712a70407 Added fix for phonon restart with tetrahedra (Mitsuaki Kawamura),
release-notes and release script updated for would-be v.6.2.1.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@14029 c92efa57-630b-4861-b058-cf58834340f0
2017-12-08 08:51:22 +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
paulatto 9e337f3ba9 New code to compute total energy and phonons in 2D materials by enforcing 2D periodic boundary conditions. Inter-layer Coulomb interaction is truncated. Vacuum space need to be larger than the layer size. Also check phonon example17 and input documentation.
Developed by Thibault Sohier, Matteo Calandra, Francesco Mauri



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13952 c92efa57-630b-4861-b058-cf58834340f0
2017-10-25 10:40:59 +00:00
timrov e8e9e09eec Bugfix in PHonon when a constrained magnetization is used for insulators
(i.e. nspin = 2 and tot_magnetization /= 0). Short explanation follows.
The weight of k+q points is set to zero, therefore the weights wg_up and wg_dw 
(which are computed through the routine iweights) for k+q points are also zero. 
As a consequence, nbnd_occ for k+q points (which were computed based on the 
conditions wg_up>0 or wg_dw>0) are also zero, which in turn leads to wrong results. 
Since we are referring to magnetic insulators, it is more straightforward 
to set nbnd_occ equal to nelup for spin up and to neldw for spin down.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13915 c92efa57-630b-4861-b058-cf58834340f0
2017-10-16 09:04:26 +00:00
giannozz 326374056b Removal of too long lines (Pietro B.) and of tabulators
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13841 c92efa57-630b-4861-b058-cf58834340f0
2017-09-14 15:13:08 +00:00
degironc f39cd93933 make.depend update
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13823 c92efa57-630b-4861-b058-cf58834340f0
2017-09-03 14:52:57 +00:00
degironc ac32e0779d a more serious take on band parallelization in PHonon
cgsolve_all parallelizes linear system solution over bands and distributes 
auxiliary working memory. in/out dpsi and d0psi arrays are not distributed 



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13819 c92efa57-630b-4861-b058-cf58834340f0
2017-09-02 09:55:31 +00:00
degironc 0169029e6f first example of PHonon works also with -nb > 1
band parallelization is not really exploited but the numbers are correct



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13818 c92efa57-630b-4861-b058-cf58834340f0
2017-09-01 15:39:11 +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 39f2fb6b1e - use helper function in place of an explicit reference to type member
- bug fix, wrong task groups increment


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13785 c92efa57-630b-4861-b058-cf58834340f0
2017-08-26 16:54:46 +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
pietrodelugas 3419a47f1a added LAXlib to the include path of LR_modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13656 c92efa57-630b-4861-b058-cf58834340f0
2017-07-30 19:56:06 +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
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
giannozz 23a32c1d5f Believe it or not, CMPLX(0.d0,0.d0) /= (0.d0,0.d0) : the latter is a double
precision complex, the former is a single precision complex. Not a big deal, 
since we use only complex 0 or 1 or i for which there is no loss of precision.
Note however that CMPLX(a,0.d0) with "a" double precision real, or CMPLX(a,b)
are single-precision complex, and this can introduce loss of precision.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13314 c92efa57-630b-4861-b058-cf58834340f0
2017-02-17 13:11:41 +00:00
giannozz 56892d0f7a Cleanup of unused variables
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13268 c92efa57-630b-4861-b058-cf58834340f0
2017-01-23 15:46:28 +00:00
giannozz f86660892c Some harmonization of old and new tetrahedra:
- old routine computing dos, allocation and deallocation of "tetra" moved into
  module ktetra; variables tetra and ntetra are used only inside the module
- added module variable nntetra containing number of neighboring points used
  (20 for optimized tetrahedra, 4 otherwise)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13228 c92efa57-630b-4861-b058-cf58834340f0
2017-01-08 14:14:38 +00:00
giannozz 435e3fae31 Optimized tetrahedra for DFPT, contributed by Mitsuaki Kawamura
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13210 c92efa57-630b-4861-b058-cf58834340f0
2016-12-23 12:49:16 +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
giannozz 3722216d93 Unused routine h_psiq removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13100 c92efa57-630b-4861-b058-cf58834340f0
2016-10-09 20:36:06 +00:00
spigafi 46bfd84dc4 fdef preprocessor macro refactoring (LR_Modules)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12971 c92efa57-630b-4861-b058-cf58834340f0
2016-09-17 14:36:58 +00:00
spigafi 533c8119e0 Horror, statements longer than 132 characters. Fixed!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12953 c92efa57-630b-4861-b058-cf58834340f0
2016-09-11 15:00:41 +00:00
giannozz 9426c337f1 Oops ...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12895 c92efa57-630b-4861-b058-cf58834340f0
2016-08-31 18:30:15 +00:00
giannozz 22848786c6 Updated i-PI interface, minimal documentation, updates to make.depend files
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12852 c92efa57-630b-4861-b058-cf58834340f0
2016-08-26 16:08:25 +00:00
ccavazzoni 8f777555f3 - adding "howmany" parameter to the cfft3d subroutine,
to compute many FFTs at the same time, particularly usefull for EXX
  but could be usefule for many linear response code as well
  (for the time being implemented only for DFTI and internal FFTW,
  should be trivial to extend other drivers)
- more clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12815 c92efa57-630b-4861-b058-cf58834340f0
2016-08-19 22:55:53 +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
degironc 18dc5b3bd1 routine upf_to_internal modified so that for USPP we set the augmentation charge as an
l-dependent array in all cases.
 This is already the case when upf%tpawp or upf%q_with_l are .true. .
 For vanderbilt US pseudos, where nqf and rinner are non zero, we do here what otherwise
 would be done multiple times in many parts of the code (such as in init_us_1, addusforce_r, 
 bp_calc_btq, compute_qdipol) whenever the q_l(r) were to be constructed. 
 For simple rrkj3 pseudos we duplicate the infomation contained in q(r) for all q_l(r).

 This requires a little extra memory but unifies the treatment of q_l(r) and allows further 
 tweaking with the augmentation charge.

 Variable upf%q_with_l set .true. at the end of the operation. It would be better to leave the 
 variable untouched at its input value  and modify the routines that compute q_l(r) to just use
 the now always present upf%qfuncl array  but this is the first step before some cleanup.

 setqf.f90 moved from PW/src to Modules, Makefiles and dependencies updated




git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12591 c92efa57-630b-4861-b058-cf58834340f0
2016-07-20 11:42:37 +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
giannozz 9363f19ec5 Global variable "eprec" no longer useful, deleted
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12512 c92efa57-630b-4861-b058-cf58834340f0
2016-06-21 10:50:51 +00:00
giannozz e9e86b48af Routine computing preconditioning matrix made more general and self-contained.
Initial computation and storage of "eprec" to be deleted.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12510 c92efa57-630b-4861-b058-cf58834340f0
2016-06-21 08:23:33 +00:00
giannozz 6ca4dc2f55 There was a line in previous commit that wasn't supposed to be there
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12507 c92efa57-630b-4861-b058-cf58834340f0
2016-06-19 12:46:20 +00:00
giannozz 424f5e19d5 Preconditioning for phonon extracted - can be improved and generalized
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12506 c92efa57-630b-4861-b058-cf58834340f0
2016-06-19 12:44:09 +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 86a67ebed8 More removal of I/O of indices
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12464 c92efa57-630b-4861-b058-cf58834340f0
2016-06-04 20:18:02 +00:00
giannozz 0299c8ed2a Missing intialization to 0 of nbnd_occ after recent changes
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12463 c92efa57-630b-4861-b058-cf58834340f0
2016-06-04 16:46:12 +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
giannozz c032fa57a9 Minor cleanup: harmonization of indices
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12444 c92efa57-630b-4861-b058-cf58834340f0
2016-05-30 13:43:23 +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
giannozz 1127d9009b I think that there is no reason any longer to use a custom version of H\psi
for finite-q perturbations: we may use the "official" version of h_psi.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12441 c92efa57-630b-4861-b058-cf58834340f0
2016-05-29 14:38:38 +00:00
giannozz cabca0a6be Recently introduced and no longer needed hack removed. Cleanup: it is not a
good idea to call "h_psi" a routine that does something related to but 
different from H\psi. Corrected a few grossly wrong comments.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12440 c92efa57-630b-4861-b058-cf58834340f0
2016-05-28 20:36:34 +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 56817ff93f More cleanup of k+G indices: almost all occurrences of k-point dependent "igk"
variables deleted; almost all occurrences of "npw" made local (PW and PP only)
Variable "current_k" must be set before calling h_psi (as before, although it
was used only in some cases). All changes should be safe, but testing of PP 
and PH is very limited.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12428 c92efa57-630b-4861-b058-cf58834340f0
2016-05-23 16:00:53 +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
sponce 40a8127377 Splitting of the program dynmat.f90.
All of its subroutines and module have been transfered into LR_Modules/dynmat_sub.f90.
This will allow the subroutines to be re-used by other programs. 
Note: I had to rename the subroutine "readmat" into "readmat2" because of 
      another readmat subroutine in PHonon/PH/elphon.f90.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12386 c92efa57-630b-4861-b058-cf58834340f0
2016-05-04 15:31:48 +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 a528fc89f3 More small fixes for NAG compiler, by Samuel Ponce'
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12308 c92efa57-630b-4861-b058-cf58834340f0
2016-04-14 17:39:49 +00:00
degironc fd25445b20 cleanup: gfortran correctly crashes at the first assignement of a couple of never allocated,
never-used-again arrays.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12300 c92efa57-630b-4861-b058-cf58834340f0
2016-04-11 19:52:07 +00:00
degironc 325cbc8490 gfortran complains for a few too long lines
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12299 c92efa57-630b-4861-b058-cf58834340f0
2016-04-11 18:07:08 +00:00
degironc d7e9274e82 cleanup of commented debubbing printouts
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12297 c92efa57-630b-4861-b058-cf58834340f0
2016-04-11 16:19:09 +00:00
degironc 4bd82d234d phonon with vdW-DF/vdw-DF2/rVV10 added.
make.depend updated


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12296 c92efa57-630b-4861-b058-cf58834340f0
2016-04-11 15:40:37 +00:00
timrov 63376b343b Added a missing part in the routine setup_alpha_pv.f90, which was taken from PH. This was a bug for metals (because one variable was not set up, i.e. emax), which I introduced by mistake a few weeks ago while moving some parts of the PH code to LR_Modules. Sorry about this!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12293 c92efa57-630b-4861-b058-cf58834340f0
2016-04-11 09:12:52 +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 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 fe47e747a2 Copying the routine setqmod.f90 from PHonon/PH to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12181 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 14:04:50 +00:00
timrov fe77de94f8 Deleting old copies of qdipol_cryst.f90 and adddvepsi_us.f90 in PHonon, and
updating Makefile and make.depend.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12178 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 13:42:43 +00:00
timrov 51c90520fa Copying the routine adddvepsi_us.f90 from PHonon/PH to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12177 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 13:10:52 +00:00
timrov 0c1a84aefa Copying the routine qdipol_cryst.f90 from PHonon/PH to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12176 c92efa57-630b-4861-b058-cf58834340f0
2016-02-28 13:09:03 +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 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 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 76d8daa48c Copying the routine compute_vsgga.f90 from PHonon/PH to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12165 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 15:30:21 +00:00
timrov 38d7b408e6 Copying the routine setup_dgc.f90 from PHonon/PH to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12164 c92efa57-630b-4861-b058-cf58834340f0
2016-02-27 15:29:02 +00:00
timrov 3c64d13f11 Deleting the routine lr_sm1_psi from TDDFPT and updating the Makefiles.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12158 c92efa57-630b-4861-b058-cf58834340f0
2016-02-21 17:04:59 +00:00
timrov dea19290f2 Copying the lr_sm1_psi routine to LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12157 c92efa57-630b-4861-b058-cf58834340f0
2016-02-21 16:28:45 +00:00
timrov 8882c58dcd Restructured the lr_sm1_psi routine (which applies the S^-1 operator to psi) and splited it into two (for q=0 and q/=0).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12156 c92efa57-630b-4861-b058-cf58834340f0
2016-02-21 16:25:56 +00:00
timrov 495cc700c9 The phonon "mode" is no longer needed in the input for dv_of_drho. Some documentation.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12155 c92efa57-630b-4861-b058-cf58834340f0
2016-02-21 11:29:59 +00:00
timrov d3e18b7863 Update the Makefiles and remove the routines "dv_of_drho" and "dgradcorr" from PHonon.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12154 c92efa57-630b-4861-b058-cf58834340f0
2016-02-20 18:53:40 +00:00
timrov ea39ea4aa5 Copying the routine dgradcorr.f90 from PHonon/PH to LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12153 c92efa57-630b-4861-b058-cf58834340f0
2016-02-20 18:44:17 +00:00
timrov a8fb66c9f1 Copying the dv_of_drho.f90 routine from PHonon/PH to LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12152 c92efa57-630b-4861-b058-cf58834340f0
2016-02-20 18:42:55 +00:00
timrov 96e5da1539 Moved the "lrpa" variable from the module "control_ph" to the module "control_lr".
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12149 c92efa57-630b-4861-b058-cf58834340f0
2016-02-20 17:34:35 +00:00
timrov 13c06625cd Actually, probably it was not a good idea. Leave the old version of dv_of_drho.f90 in PHonon, and delete the copied version from LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12128 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 16:14:57 +00:00
timrov a888a04d86 Copying the PHonon routine dv_of_drho.f90 (which computes the response HXC potential) to LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12127 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 14:30:35 +00:00
timrov 58a9714ce3 Porting minor updates of my previous commits to addusdbec.f90 and addusdbec_nc.f90 which are inside LR_Modules,
and deleting the obsolete copies of these routines in PH.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12124 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 13:13:49 +00:00
timrov 10e4b669c6 Removing two subroutines from PH, because they were copied to LR_Modules. Update Makefiles correspondingly.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12123 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 13:04:35 +00:00
timrov 63be6cd107 Copying the PH routine "incdrhoscf_nc.f90" (which computes the response charge density in the noncollinear case) to the LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12122 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 12:49:16 +00:00
timrov 7106451952 Copying the PH routine "incdrhoscf.f90" (which computes the response charge density) to the LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12121 c92efa57-630b-4861-b058-cf58834340f0
2016-02-14 12:46:52 +00:00
degironc e54f9a79d6 updated dependencies for addusdbec*.f90 move
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12050 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 03:57:01 +00:00
degironc 948add21d7 addusdebec_nc.f90 moved to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12049 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 03:55:55 +00:00
degironc 51d6077d80 addusdbec.f90 moved to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12048 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 03:55:21 +00:00
degironc f997c42b5a set_dbecsum_nc and set_int3_nc extracted from PHonon/PH/set_int12_nc.f90 and moved to LR_Modules as separated files
transform_dbecsum_so.f90 and transform_dbecsum_nc.f90 appendened to set_dbecsum_nc.f90 that calls them
transform_int3_so extracted from PHonon/PH/transform_int_so.f90 and appended to set_int3_nc.f90 that calls it
transform_int3_nc extracted from PHonon/PH/transform_int_nc.f90 and appended to set_int3_nc.f90 that calls it
dependencies updated



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12047 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 03:00:30 +00:00
degironc 521686bbd6 becp1 variable moved form phus -> lrus
addvscf.f90 moved in LR_Modules (done in previous commit)
updated dependencies and USE statements 



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12046 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 01:50:14 +00:00
degironc 1bfd44e13e another generic routine moved to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12045 c92efa57-630b-4861-b058-cf58834340f0
2016-01-22 01:45:11 +00:00
degironc a29d278e13 git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12043 c92efa57-630b-4861-b058-cf58834340f0 2016-01-21 00:57:35 +00:00
degironc d545565772 move newdq to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12042 c92efa57-630b-4861-b058-cf58834340f0
2016-01-21 00:48:41 +00:00
degironc 701d3932d5 index of the perturbation moved as las index in int3
now it is

  int3(nhm,nhm,nat,nspin,npert) =  \int Delta V_Hxc Q d^3r

  and similarly for int3_nc, int3_paw
  


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12041 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 23:42:39 +00:00
degironc 366e5102ef file name made consistent with routine name
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12040 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 22:31:05 +00:00
degironc 3030e37f01 cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12039 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 22:17:19 +00:00
degironc ed80ce1457 set_defaults_pw moved to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12037 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 17:43:14 +00:00
degironc a07f5a8ca3 one more small group of q routine moved
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12036 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 16:33:18 +00:00
degironc d81fcaf8b1 moving small group of q routine to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12034 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 16:05:38 +00:00
degironc 2d4e3fda5a module modes in phcom.f90 split in modes + lr_symm_base in LR_Modules/lrcom.f90
dependencies updated



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12033 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 14:53:42 +00:00
degironc 101e401714 iit was not a good idea... yet
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12031 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 13:02:44 +00:00
degironc c97e103bc7 let's try to move the setup of nscf calcs
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12030 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 11:28:19 +00:00
degironc 6e2d87da8f cg_ph renamed cg_lr and moved to LR_Modules/lrcom.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12029 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 11:09:35 +00:00
degironc 6c27413b23 that was easy too...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12027 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 10:16:34 +00:00
degironc 60610ec3ba let's try to move the commutator..
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12026 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 10:02:29 +00:00
degironc d5c10b6dce that was easy... just updating some dependencies
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12025 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 09:22:29 +00:00
degironc fddd12aac1 try moving anothe one
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12024 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 09:08:28 +00:00
degironc 7edc6821df moving run_nscf to LR_Modules was not such a good idea.. too many dependencies
a few updated dependendces



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12023 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 09:00:31 +00:00
degironc bbb852020a one more routine that should be not PH specific moved to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12022 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 08:37:45 +00:00
degironc cd6ecc427e code compiles
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12021 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 08:26:12 +00:00
degironc aee8705318 cg_psi copied to LR_Modules.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12020 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 08:17:10 +00:00
degironc 57f4c6a4fa ch_psi_all.f90 moved to LR_Modules,
lgamma moved from control_ph -> control_lr
"make all" compiles w/o complaining



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12019 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 08:13:57 +00:00
degironc c22a64ac4f copying ch_psi_all.f90 to LR_Modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12018 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 06:42:04 +00:00
degironc 78622ed13a compilation ok with orthogonalize.f90 moved to LR_Modules
module control_ph split into PH/control_ph + a minimal LR_Modules/control_lr 


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12015 c92efa57-630b-4861-b058-cf58834340f0
2016-01-19 22:39:03 +00:00
degironc aba382e386 one more routine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12012 c92efa57-630b-4861-b058-cf58834340f0
2016-01-19 15:29:28 +00:00
degironc f4bb6a346d compiling version + a litle cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12011 c92efa57-630b-4861-b058-cf58834340f0
2016-01-19 15:24:50 +00:00
degironc 1f79568f91 yet another "easy" routine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12010 c92efa57-630b-4861-b058-cf58834340f0
2016-01-19 15:08:02 +00:00
degironc 07c0bca6ff imoving (copying) another small routine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12009 c92efa57-630b-4861-b058-cf58834340f0
2016-01-19 14:35:11 +00:00
degironc 02c13c016e forgotten make.depend
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12006 c92efa57-630b-4861-b058-cf58834340f0
2016-01-18 22:49:45 +00:00
degironc c436762fe4 dependencies and Makefiles updated so that "make all" compiles
PH/phcom.f90 split in PH/phcom.f90 + LR_Modules/lrcom.f90 that contains
qpoint module 
A number of routines using these variables needed to be modified to explicitely
load qpoint (in addition to phcom)



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12005 c92efa57-630b-4861-b058-cf58834340f0
2016-01-18 22:48:44 +00:00
giannozz cb579e7730 First attempt of a compilation of the new linear-response modules (of course
it fails)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12003 c92efa57-630b-4861-b058-cf58834340f0
2016-01-18 19:32:00 +00:00
paulatto 5e629e5155 Copy to new library
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12002 c92efa57-630b-4861-b058-cf58834340f0
2016-01-18 16:09:00 +00:00
giannozz b041d461ba Makefile for future Linear-Response modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12001 c92efa57-630b-4861-b058-cf58834340f0
2016-01-18 15:59:29 +00:00