have been completely distributed across processors,
for gamma point calculations with scalapack.
This implementation save memory and add some communications.
The distribution of becp is performed whenever
allocate_bec_type is called with a communicator as an additional argument.
add_vuspsi, calbec and s_psi check for the presence of the
communicator within bec type, and if it is present use
a distributed algorithm to compute related quantities.
Exactly the same strategy could be applied to the k-point
and non-collinear case
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8712 c92efa57-630b-4861-b058-cf58834340f0
this is for making read_rho working with bands and pool parallelization.
It is not very sexy, but it seems to work.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8709 c92efa57-630b-4861-b058-cf58834340f0
dipole moment and quadrupole moment of a charge distribution on the dense real-space grid.
The subroutine has been modified to accept any kind of density as input. PW/src/makov_payne.f90 modified accordingly.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8701 c92efa57-630b-4861-b058-cf58834340f0
By default this keyword is set to "input", but by specifying "water" all the optimized
parameters will be set automatically during the input processing. Other environ types could
be added in the future.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8700 c92efa57-630b-4861-b058-cf58834340f0
which should also work with noncollinear magnetism and FR pseudo-potentials.
Old simplified version is kept and runs by default. New implementation
can be invoked by specifying lda_plus_u_kind = 1 (it is 0 by default).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8694 c92efa57-630b-4861-b058-cf58834340f0
For the time being only in case of "gamma" calculation and with __SCALAPACK macro.
Array "ps" has dimension proportional to nkb * nbnd, and for system with large number of atoms
(>1000) could become really huge.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8686 c92efa57-630b-4861-b058-cf58834340f0
in the external loop over k-points, rather than passing it as an argument.
Just two lines in TD-DFPT needed. Routine commutator_Hx_psi, used only by
linear-response code, moved to PHonon: no reason to have it in PW
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8659 c92efa57-630b-4861-b058-cf58834340f0
because the way ns occupancies are written to file is very questionable
and should be reconsidered. Cleanup: set_hubbard_l merged and moved to flib/
There are still incompatibilities between PW and CP data (e.g. wfcs
in LSDA case cannot be read), and there will ever be until all I/O
routines are completely merged (and not partially as they are now)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8656 c92efa57-630b-4861-b058-cf58834340f0
In particular, in v_of_rho.f90 we included:
1) a simple driver to compute the hartree potential in real space from a density in real space (V_H_OF_RHO_R).
2) a subroutine to compute the gradient of hartree potential in real space from a spinless density in real space (GRADV_OF_RHO_R).
In gradcorr.f90 we added:
1) similarly to what is done by GRADIENT, a subroutine to compute the hessian and the gradient of a function in real space, by going through reciprocal space (HESSIAN)
2) a driver to call GRADIENT from an external module without the need to know anything about reciprocal space.
3) a similar driver for HESSIAN.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8641 c92efa57-630b-4861-b058-cf58834340f0