Commit Graph

102 Commits

Author SHA1 Message Date
giannozz 25b13eabfb Format + stack fixes from Axel
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4805 c92efa57-630b-4861-b058-cf58834340f0
2008-04-16 07:50:58 +00:00
giannozz 24d44b365c Added calculation of the shift needed to bring the levels calculated by CP
(and energies of charged cells as well) in line with those calculated by PW.
For the time being, the shift is just printed (see line "Delta V(G=0)=" )
in subroutine formf but not used. Some cleanup here and there.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4675 c92efa57-630b-4861-b058-cf58834340f0
2008-02-04 16:46:22 +00:00
cavazzon 9f8ce427b3 - BUG FIX, for norm-conserving pp with non local core corrections.
nlcc_any flag now is computed in readpp together with okvan flag


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4620 c92efa57-630b-4861-b058-cf58834340f0
2008-01-12 14:32:28 +00:00
giannozz 28b4e9ba19 Minor cleanup; max number of species brought back to 10
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4447 c92efa57-630b-4861-b058-cf58834340f0
2007-11-19 14:51:15 +00:00
giannozz a2f2848f92 More static arrays and dimensions removed: rho_at rho_atc natx nbndxx
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4365 c92efa57-630b-4861-b058-cf58834340f0
2007-10-24 15:36:52 +00:00
giannozz 92d2c02c40 Old BHS potentials removed everywhere
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4345 c92efa57-630b-4861-b058-cf58834340f0
2007-10-16 15:07:42 +00:00
giannozz 646edcf97f Old BHS analytical pseudopotentials removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4338 c92efa57-630b-4861-b058-cf58834340f0
2007-10-11 20:14:38 +00:00
cavazzon e1b0183fe7 - xlf complains for an array argument passed as vloc(1) to a subroutine
with an explicit interface (formfn) where the array is declared as
  vloc( n-somthing ). xlf is right.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4315 c92efa57-630b-4861-b058-cf58834340f0
2007-10-06 09:00:57 +00:00
giannozz 6d97829a14 Fixed stupid error in "read_file" that was causing crashes in all
phonon and postprocessing codes (Andrea please check the spin-orbit case)
Redundant variables in uspp_param (mostly) removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4313 c92efa57-630b-4861-b058-cf58834340f0
2007-10-06 08:23:39 +00:00
cavazzon 8d614f73a6 - cleanups
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4175 c92efa57-630b-4861-b058-cf58834340f0
2007-08-22 10:22:35 +00:00
degironc 6da8252f73 a radial_grid_type is introduced in Modules and used in atomic-related part
many changes but results are identical before and after.
sdg


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4127 c92efa57-630b-4861-b058-cf58834340f0
2007-08-12 00:08:53 +00:00
cavazzon 42e937f196 - unused subroutine removed
- more interfaces
- cp/fpmd "from_restart" merged
- cp/fpmd "movecell" merged
- clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3836 c92efa57-630b-4861-b058-cf58834340f0
2007-03-05 10:16:05 +00:00
cavazzon dde1f5e1c9 - further parallelization of ortho and distribution of
lambda matrixes on a square mesh PxP of processors.
  The number of processors used in the run not necessarily should be equal
  to a perfect square PxP, the code, in distributing lambda,
  try to use an optimal (for performances) square PxP less or equal than the
  number of procs used.
- the size (Np=PxP) of the processor mesh to be used in distributing lambda
  and ortho, can be suggested using the namelist keyword
  ortho_para = Np
  in the electrons namelist
- the distribution of lambda matrixes is required to save
  memory in run with an high number of bands.
  In a system with 2800 bands, the memory saved is about 200Mbyte
  per proc/core if a sufficient number of proc ( some hundreds )
  is used.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3643 c92efa57-630b-4861-b058-cf58834340f0
2007-01-05 15:32:43 +00:00
giannozz 3a98e2d9d4 More patches from Axel:
- correct an unquoted string (iosys) in PW/input.f90:483
(this was the cause of tonight compilation failere)
- correct a few incorrect format strings
- make more use of the constants module and thus
  provide more consistent units. NOTE, this has some
  numerical changes in the outputs, as in some places
  rather low precision and inconsistent numbers were
  used for unit conversion.
- convert all(?) single precision constants to double
  using the attached little perl program.
  exceptions: efermi.f90 (as it is supposed to be rewritten
  anyways), plotbands.f90 (it uses single precision everywhere,
  which may result in saving a significant amount of memory,
  so i converted the two double precision constants to single).
Unused routine 'set_fft_grid' removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3602 c92efa57-630b-4861-b058-cf58834340f0
2006-12-14 08:53:47 +00:00
cavazzon e89787ba3a - again projections on atomic states.
- MXMAs substituted with DGEMMs
- some clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3350 c92efa57-630b-4861-b058-cf58834340f0
2006-08-29 09:40:12 +00:00
cavazzon 2f2b88494a - same eletronic occupations array between FPMD/CPV
- lot of subroutines taken out from modules and
   corresponding interface added


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3305 c92efa57-630b-4861-b058-cf58834340f0
2006-08-03 17:47:35 +00:00
cavazzon f55fb94c17 - fix for BGL machine, thanks to Costas Bekas
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3279 c92efa57-630b-4861-b058-cf58834340f0
2006-07-19 11:09:04 +00:00
cavazzon 8e763f9676 - bug fix, "kkbeta" mistakenly used in place of "mesh" in non local
core correction integrals.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3231 c92efa57-630b-4861-b058-cf58834340f0
2006-06-30 10:21:18 +00:00
cavazzon 25b02439aa - fix for NLCC contribution to forces and stress
- more BGL porting
- clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3020 c92efa57-630b-4861-b058-cf58834340f0
2006-04-18 07:33:11 +00:00
cavazzon ab37050da2 - bug fix, fpmd wasn't able to manage pseudo with radial grid
starting from 0.
- more static array removed
- clean-ups and mergings


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3010 c92efa57-630b-4861-b058-cf58834340f0
2006-04-09 23:38:56 +00:00
giannozz 45b01da348 YABIS (Yet Another Bug In Stress): CP + US case hopefully fixed (was
bad only for l > 0 terms in q functions: same problem of sign as in NCPP).
There are still minor discrepancies between the stress in PW and CP/FPMD,
also in the norm-conserving case. The discrepancies are small but not
so small to be negligible. More investigation is needed...


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3008 c92efa57-630b-4861-b058-cf58834340f0
2006-04-07 14:54:20 +00:00
cavazzon 0a736de497 - important bug fix, one of the component of the stress in CP (not fpmd),
was carrying a wrong sign. Now checked and working with NCPP,
  to be further checked with USPP. The stress was wrong when using
  PP with nonlocality P or greather.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2987 c92efa57-630b-4861-b058-cf58834340f0
2006-04-01 15:43:55 +00:00
cavazzon dd93c6ad14 - group communicator variable substituted with intra_image_comm,
first step needed to parallelize neb over images also for CP.
  Next we need to add the right communicator to all communications
- subroutine reduce substituted everywhere with mp_sum
- mp_sum for array with 4dims added in mp.f90
- workaround for xlf compiler, it has problems compiling file with
  initialization of large array in the definition line,
  see Modules/input_parameters.f90 , initialization moved to
  Modules/read_cards.f90 .


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2946 c92efa57-630b-4861-b058-cf58834340f0
2006-03-23 09:19:43 +00:00
giannozz 4bcb74d408 - combined index instead of two symmetric indices for array dqrad
- the logic of the combined index for US PP is now the same everywhere
  (i.e in PW, CP, and in the pseudopotential format):
     do iv=1,N
        do jv=iv,N
           ijv=jv*(jv-1)/2+iv
  (in PW the indices are called nb, mb). In order to get ijv from (iv,jv):
     if (iv > jv) then
         ijv=iv*(iv-1)/2+jv
     else
         ijv=jv*(jv-1)/2+iv
     end if
- the above change also fixes a serious bug affecting Vanderbilt US PP
  in UPF format (only half of the qfcoef array was present, but not the
  good half)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2916 c92efa57-630b-4861-b058-cf58834340f0
2006-03-15 11:23:03 +00:00
cavazzon d77f5709f9 - bug fix in fill_qrl, to be further examined
- fill_qrl from cplib to pseudopot
- ortho: mxma substituted with dgemm and pmatmul (parallel)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2900 c92efa57-630b-4861-b058-cf58834340f0
2006-03-10 16:02:42 +00:00
cavazzon 249aaccce6 - more Blue Geen stuff, task groups initialization subroutine.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2882 c92efa57-630b-4861-b058-cf58834340f0
2006-03-08 09:03:27 +00:00
giannozz 4c174a6787 Memory saving in US PP and small boxes: packed form for more arrays
PLEASE NOTE: the logic for packed index is as follows everywhere
do i=1,N
   do j=1,i
      ij = (i-1)*i/2 + j
This is equivalent to
ij = 0
do i=1,N
   do j=1,i
      ij = ij + 1
This is not (yet) the same as used in PW, though


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2871 c92efa57-630b-4861-b058-cf58834340f0
2006-03-07 10:15:27 +00:00
giannozz aa7aa03999 - memory usage of arrays qradb, dqrad reduced whenever the maximum number
of beta functions is smaller than the fixed maimum nbrx
- routines for herman-skillman integration moved together to other
  integration routines in flib/ . We should one day decide which one of
  these routines should be used: they all do basically the same thing
- routine reading ultrasoft PP in the old Vanderbilt format moved to
  Modules/. More USPP cleanup coming soon.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2868 c92efa57-630b-4861-b058-cf58834340f0
2006-03-06 10:39:38 +00:00
cavazzon 3c8bbee2b2 *** empty log message ***
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2743 c92efa57-630b-4861-b058-cf58834340f0
2006-01-29 16:43:06 +00:00
giannozz 9d4b0c3387 Do not allocate large arrays that are not used with fixed cell
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2697 c92efa57-630b-4861-b058-cf58834340f0
2006-01-12 21:03:17 +00:00
giannozz aed2eca96f Cleanup of the Ultrasoft PP: variable "cmesh", used only for PP in the
archaic USPP format with Herman-Skilman grid, removed. The integration
is now performed used the same logic (but not yet the same routine) of
the other cases.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2536 c92efa57-630b-4861-b058-cf58834340f0
2005-12-01 17:25:22 +00:00
giannozz 1e5f5a5002 References updated, some cleanup of unused routines
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2463 c92efa57-630b-4861-b058-cf58834340f0
2005-11-11 16:11:22 +00:00
giannozz 8f9fae13dc The "qrl" array - used for compatibility with old Vanderbilt format -
takes 200Mb with default parameters! Reduced to almost half by using
the symmetry wrt index exchange.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2439 c92efa57-630b-4861-b058-cf58834340f0
2005-11-08 10:04:52 +00:00
sbraccia cfb3560db2 check_tables must be called only in the case of variable cell dynamics.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2400 c92efa57-630b-4861-b058-cf58834340f0
2005-11-01 22:40:42 +00:00
umari 300d6f536c Fixed C.G., ENSEMBLE-DFT, ELECTRIC FIELD
P.U.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2340 c92efa57-630b-4861-b058-cf58834340f0
2005-10-21 19:40:15 +00:00
cavazzon 89fc5481fc - CP docs revised
- CP postprocessing ( cppp.x ) now properly read restart.xml and
  trajectory files to produce xcrysden files ( .xsf .axsf )


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2235 c92efa57-630b-4861-b058-cf58834340f0
2005-09-26 15:56:23 +00:00
cavazzon 2aa910dda7 - fix in stress calculation for non linear core correction
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2211 c92efa57-630b-4861-b058-cf58834340f0
2005-09-23 12:50:54 +00:00
giannozz f533b052d5 dbl => DP (defined as previously dbl was)
syntax for declarations: real(DP), without "kind="


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2135 c92efa57-630b-4861-b058-cf58834340f0
2005-08-28 14:09:42 +00:00
giannozz bf4bfe222f General cleanup of intrinsic functions:
conversion to real    => DBLE
(including real part of a complex number)
conversion to complex => CMPLX
complex conjugate     => CONJG
imaginary part        => AIMAG

All functions are uppercase.
CMPLX is preprocessed by f_defs.h and performs an explicit cast:
#define CMPLX(a,b)  cmplx(a,b,kind=DP)
This implies that 1) f_defs.h must be included whenever a CMPLX is present,
2) CMPLX should stay in a single line, 3) DP must be defined.

All occurrences of real, float, dreal, dfloat, dconjg, dimag, dcmplx
removed - please do not reintroduce any of them.
Tested only with ifc7 and g95 - beware unintended side effects

Maybe not the best solution (explicit casts everywhere would be better)
but it can be easily changed with a script if the need arises.
The following code might be used to test for possible trouble:

program test_intrinsic

  implicit none
  integer, parameter :: dp = selected_real_kind(14,200)
  real (kind=dp) :: a = 0.123456789012345_dp
  real (kind=dp) :: b = 0.987654321098765_dp
  complex (kind=dp) :: c = ( 0.123456789012345_dp, 0.987654321098765_dp)

  print *, '      A = ', a
  print *, ' DBLE(A)= ', DBLE(a)
  print *, '      C = ', c
  print *, 'CONJG(C)= ', CONJG(c)
  print *, 'DBLE(c),AIMAG(C)  = ', DBLE(c), AIMAG(c)
  print *, 'CMPLX(A,B,kind=dp)= ', CMPLX( a, b, kind=dp)

end program test_intrinsic

Note that CMPLX and REAL without a cast yield single precision numbers on
ifc7 and g95 !!!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2133 c92efa57-630b-4861-b058-cf58834340f0
2005-08-26 17:44:42 +00:00
cavazzon da2901d819 - Another wrong variable declariation, this time found by Intel,
it was not found by IBM and PGI!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2112 c92efa57-630b-4861-b058-cf58834340f0
2005-08-22 14:57:26 +00:00
cavazzon 260828432d - FPMD: pseudopotential variable wsg, wnl, fnl substituted with
dion, beta, bec everyware.
- subroutines formfn, compute_beta, nlsm1, nlsm2, ecc ... now are common
  between FPMD and CPV, a lot of clean ups!
- Changes in stdout: relevant physical quantities ( positions velocities an cell )
  are now printed with the seme format of the corresponding input card,
  like in PW, as was suggested by SdG.
- exemple23 updated to reflect the new input namelist "wannier"
- Subroutine init_run now is used in FPMD too.
- WARNING in the stress computed with CP, for a pseudo with core-corrections,
  a contribution is missing! Not yet fixed, I need to talk with PG for the
  box staff.
- WARNING the examples reference are not updated, I'm on the IBM sp, and
  I prefer to update them from a linux machine.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2110 c92efa57-630b-4861-b058-cf58834340f0
2005-08-22 14:14:13 +00:00
cavazzon d3aabc5972 - pseudopotential base modules uspp_param and uspp now used
also in FPMD, for norm-conserving pseudo (like in CP)
- Few clean-ups in pseudopotential parameters initialization


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1880 c92efa57-630b-4861-b058-cf58834340f0
2005-05-18 21:01:05 +00:00
sbraccia a00aac0e25 header containing the GPL license added where missing and made omogeneous.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1865 c92efa57-630b-4861-b058-cf58834340f0
2005-05-16 19:19:04 +00:00
ballabio 8604e671af end --> end subroutine [Gerardo]
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1858 c92efa57-630b-4861-b058-cf58834340f0
2005-05-12 13:23:41 +00:00
cavazzon 06b27d95f6 - ylmr2 (from flib) nown used to compute spherical harmonics in FPMD and
qqberry too.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1851 c92efa57-630b-4861-b058-cf58834340f0
2005-05-08 21:10:20 +00:00
cavazzon 54b83781e9 - clean-ups, removed old FPMD constraints, and old FPMD formf
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1843 c92efa57-630b-4861-b058-cf58834340f0
2005-05-01 20:53:24 +00:00
cavazzon f98847f085 - subroutines formfn, compute_rhops have been made code independent and used
by both CP and FPMD
- Now FPMD and CP use the same random wave functions initialization,
  which is also independent from the number of processors,
  very useful for debugging.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1836 c92efa57-630b-4861-b058-cf58834340f0
2005-04-28 15:27:41 +00:00
cavazzon 0219a46b4c - CP clean-ups: eigr, ei1, ei2, ei3, eigrb, ... arrays
now have the same layout (equal to the layout they have in PW)
- iotk files in Modules have been removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1801 c92efa57-630b-4861-b058-cf58834340f0
2005-04-14 21:08:53 +00:00
cavazzon 8bf1d7a48f - more CP/FPMD merging, clean-ups.
- Standard output hopfully made more clear and common between CP/FPMD
 - common CP/FPMD initialization
 - fix for nat checking in cploop


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1775 c92efa57-630b-4861-b058-cf58834340f0
2005-03-30 18:08:01 +00:00
giannozz c627b6ed03 obsolete variable 'ipp' describing the type of PP replaced by more
self-explanatory (maybe) variables, mostly already there


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1764 c92efa57-630b-4861-b058-cf58834340f0
2005-03-27 20:05:06 +00:00