Commit Graph

54 Commits

Author SHA1 Message Date
giannozz 2c0c6c2248 Removal of f_efs.h, explicit typing of CMPLX, lowercase blas/lapack
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5802 c92efa57-630b-4861-b058-cf58834340f0
2009-08-03 07:29:20 +00:00
giannozz 9258fc3cbb Added possibility to calculate Wannier functions through Jacobi rotations
(for code CP) - Courtesy of Sylvie Stucki et al, IRRMA Lausanne


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5458 c92efa57-630b-4861-b058-cf58834340f0
2009-03-04 10:43:48 +00:00
cavazzon 8ebec38630 - Explicit MPI_XXXX calls substituted by calls to "mp" wrappers.
- Parallelization of some beta.dot.c arrays to reduce the
  memory requirement of the code when using many processors
- cleanup in wannier functions related subroutines
- various cleanup


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5346 c92efa57-630b-4861-b058-cf58834340f0
2009-01-12 17:25:16 +00:00
cavazzon c665870559 - clean ups
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5118 c92efa57-630b-4861-b058-cf58834340f0
2008-08-10 18:39:17 +00:00
giannozz 745d883791 Minor changes
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4715 c92efa57-630b-4861-b058-cf58834340f0
2008-02-18 21:33:59 +00:00
cavazzon 85f89cc3d3 - new simplified fft interface and simplified call tree
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4578 c92efa57-630b-4861-b058-cf58834340f0
2007-12-31 11:01:33 +00:00
cavazzon e255615328 - more merging: now there is only one dforce routine.
- developing: some input parameters damped to file qe_input.xml


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3819 c92efa57-630b-4861-b058-cf58834340f0
2007-02-26 14:48:03 +00:00
cavazzon 442c54e1ea - merging of dforce, dforce_bgl and dforce_field in a single routine
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3637 c92efa57-630b-4861-b058-cf58834340f0
2007-01-03 09:04:02 +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 3e5b990164 - added new version of wannier cp code, contributed by Young-Su Lee
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3522 c92efa57-630b-4861-b058-cf58834340f0
2006-11-09 23:07:52 +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 7601c0b617 - more subroutines taken out from modules
- enhanced restart procedure, with disk_io='high'
  more stuff is saved to restart dir, this is required
  for post-processing and pw.x codes.
- wave functions are read following the iotk link, without
  explicitly open the file, this increases the possibility
  for interoperability and backward compatibility.
- added input parameter saverho (to control the saving of charge density),
  disk_io has a more general meaning
- merging of the subroutine that computes dekin stress component
- atomic wave function occupations factors ( "oc" ) now
  are copied to internal "atom" module.
- various cleanups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3322 c92efa57-630b-4861-b058-cf58834340f0
2006-08-11 08:29:52 +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 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
sbraccia 3bac585738 Old style write_rho added back: it is necessary for printout of wannier
functions and cannot be replaced by write_rho_xml.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2971 c92efa57-630b-4861-b058-cf58834340f0
2006-03-28 14:40:32 +00:00
sbraccia 77e210f2a4 Wannier functions were not printed when requested. Cleanup of wannier related
stuff. C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2969 c92efa57-630b-4861-b058-cf58834340f0
2006-03-28 04:02:36 +00:00
cavazzon e817d7c43c - removed old mpi wrappers reduce.f90, that was used in CP
- more changes for parallelization over images


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2965 c92efa57-630b-4861-b058-cf58834340f0
2006-03-27 17:01:30 +00:00
cavazzon cff1f9680c - static arrays dimensioned with natx removed
- nproc substituted with nproc_image
- mpime substituted with me_image
- roor substituted with root_image
- some clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2960 c92efa57-630b-4861-b058-cf58834340f0
2006-03-24 18:51:06 +00:00
cavazzon e92ac1f08a - static array substituted with dynamic array, to reduce
memory requirements


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2951 c92efa57-630b-4861-b058-cf58834340f0
2006-03-23 18:00:12 +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 0c7b6e2902 __AIX (IBM machines with essl) split into __AIX and __ESSL
Beware: configure not yet updated


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2924 c92efa57-630b-4861-b058-cf58834340f0
2006-03-16 18:04:33 +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
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
cavazzon 2bebd0198c - Box grid data layout descriptor used in fft high level driver
- fix in smdinit for Box grid descriptor


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2849 c92efa57-630b-4861-b058-cf58834340f0
2006-02-23 22:10:40 +00:00
cavazzon 0cbd417269 - charge density is now read and written in CP/FPMD trough xml subroutine
- CP/FPMD post processing updated, charge and states written in xsf/grd format
- CP rhoofr moved to file chargedensity.f90
- merged from_scratch subroutine


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2839 c92efa57-630b-4861-b058-cf58834340f0
2006-02-19 23:29:28 +00:00
cavazzon f360a61a52 - fft drivers reorganization, elimination of redundant subroutines
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2807 c92efa57-630b-4861-b058-cf58834340f0
2006-02-14 10:23:58 +00:00
giannozz fe1fe465c7 Misc cleanud and removal of old/obsolete/mysterious preprocessing
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2721 c92efa57-630b-4861-b058-cf58834340f0
2006-01-24 15:54:22 +00:00
cavazzon 1a6b00bbb6 - FPMD/CP ortho subroutines merged as much as possible.
- Many ortho auxiliary functions (tauset, rhoset, sigset, calphi, updatc)
  are now in common between FPMD/CP, and moved to module ortho_base.f90
- In FPMD, three index vectors, related to real space like charge and potential
  have been substituted with single index vector like in CP, for compatibility
  and efficiency.
- Bug fix in pwtools/matdyn.f90 a logical variable was used in place of a
  character variable


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2694 c92efa57-630b-4861-b058-cf58834340f0
2006-01-10 14:04:13 +00:00
giannozz 039537519a First batch of alpha compilation problems
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2497 c92efa57-630b-4861-b058-cf58834340f0
2005-11-21 17:30:07 +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
sbraccia 39aa8f58be Dynamics with wannier functions: variables wf_dt and wfdt unified. Added a check on
the input value of calwf.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2119 c92efa57-630b-4861-b058-cf58834340f0
2005-08-23 18:42:25 +00:00
sbraccia eaa2293534 Added a card for plotting wannier functions (and related stuff).
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1991 c92efa57-630b-4861-b058-cf58834340f0
2005-07-01 20:39:45 +00:00
sbraccia 2d5fa8a23e Added a namelist for cp-dynamics with wannier functions (and related stuff).
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1990 c92efa57-630b-4861-b058-cf58834340f0
2005-07-01 14:26:10 +00:00
cavazzon 2a8ffa6197 PGI compiler ( 6.0 ) complains about the function declaration:
COMPLEX(KIND=dbl) FUNCTION somefunction( )
  USE kinds, only: dbl

He want to see:

FUNCTION somefunction()
  USE kinds, only: dbl
  COMPLEX(KIND=dbl) :: somefunction

The second is for sure a correct construct, but
honestly I don't remember if the first is wrong,
it seems not, then most probably the error is a pgi bug!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1946 c92efa57-630b-4861-b058-cf58834340f0
2005-06-08 21:46:06 +00:00
sbraccia 0429fba948 Fixed a couple of bugs in the code for wannier-cp-dynamics (Manu Sharma).
Some cleanup of the code.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1937 c92efa57-630b-4861-b058-cf58834340f0
2005-06-07 13:39:14 +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
ballabio 348adb1cc1 end --> end function [Gerardo]
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1868 c92efa57-630b-4861-b058-cf58834340f0
2005-05-17 16:46:38 +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 69c501c5f2 more end --> end subroutine [Gerardo]
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1859 c92efa57-630b-4861-b058-cf58834340f0
2005-05-12 15:19:08 +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 1733abe068 - more CP90/FPMD merging: fft high level driver, iosys, exchange-correlation
- some subroutine shortened and simplyfied to make compilation easy


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1559 c92efa57-630b-4861-b058-cf58834340f0
2005-01-15 10:53:46 +00:00
cavazzon 242e9454bf - more merging CP/FPMD
- cleanups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1412 c92efa57-630b-4861-b058-cf58834340f0
2004-11-01 16:43:29 +00:00
giannozz 4cdcc4e052 Compilation problems in parallel fixed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1367 c92efa57-630b-4861-b058-cf58834340f0
2004-10-01 16:57:56 +00:00
giannozz e68308621e f_defs.h added
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1351 c92efa57-630b-4861-b058-cf58834340f0
2004-09-27 16:33:02 +00:00
cavazzon 95f13e2304 - fix suggested by PG in subroutines Modules/cell_base.f90
and CPV/wf.f90
- More mergings between CPV and FPMD (init, grids setup)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1340 c92efa57-630b-4861-b058-cf58834340f0
2004-09-27 10:05:50 +00:00
cavazzon 1be2feeb88 - more mergings between CP and FPMD
- initialization (both code uses the same ggen)
- now FPMD initializes the small-boxes too (required for untrasoft pseudo)
- print out


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1186 c92efa57-630b-4861-b058-cf58834340f0
2004-08-27 10:20:42 +00:00
cavazzon 4779a24c14 - few changes in module usage, sort of workaround for ifc 7.1
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1095 c92efa57-630b-4861-b058-cf58834340f0
2004-07-24 09:51:35 +00:00
ballabio 80c4d9f38c trivial bugfixes [Gerardo]
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1065 c92efa57-630b-4861-b058-cf58834340f0
2004-07-13 17:36:44 +00:00