Commit Graph

43 Commits

Author SHA1 Message Date
ccavazzoni 6e2258f817 - cleanup
- bugfix: spin polarized simulation was not working with band group
  parallelization


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7393 c92efa57-630b-4861-b058-cf58834340f0
2011-01-09 23:07:03 +00:00
ccavazzoni 68cab7dbae - CPV module cdvan removed
- more cleanups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7381 c92efa57-630b-4861-b058-cf58834340f0
2011-01-05 08:54:54 +00:00
ccavazzoni 9b0453df25 - a lot of changes for band parallelization
- old variables substituted by transition variables,
  eventually to be renamed as the old one, when transition will be over
- All array now are distributed across one or more processor groups

Note that **  NOW CPV IS almost MEMORY BOTTLENECK FREE **

Warning, not all functionalites have been tested, CPV with band distribution
should be considered in ALPHA testing.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7376 c92efa57-630b-4861-b058-cf58834340f0
2011-01-03 09:37:27 +00:00
ccavazzoni 39e0a921cd - more band parallelization
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7364 c92efa57-630b-4861-b058-cf58834340f0
2010-12-29 00:18:33 +00:00
ccavazzoni 03d0ae80a4 - starting parallelization over bands
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7357 c92efa57-630b-4861-b058-cf58834340f0
2010-12-28 00:18:50 +00:00
giannozz 3ee0e520b6 More variable unification: module gvecs and gsmooth merged (new name: gvecs),
module gvect, gvecp, reciprocal_vectors merged (new name: gvect)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7348 c92efa57-630b-4861-b058-cf58834340f0
2010-12-24 10:19:22 +00:00
giannozz aeb87c596e More variable name harmonization: gx (CP) => g (PW)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7230 c92efa57-630b-4861-b058-cf58834340f0
2010-11-19 13:15:29 +00:00
ccavazzoni 1feaa883c1 - bug fix for LSD simulation,
WARNING: This bug was there since long time,
but only with recent update its effects become visible.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7004 c92efa57-630b-4861-b058-cf58834340f0
2010-08-20 15:21:29 +00:00
giannozz 13ddeace2b Minimal CP changes: unused variables, insufficient format, added or displaced
__OPENMP in such a way that compilation with openmp enabled but without
-D__OPENMP doesn't yield a compilation error (for testing purposes)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6890 c92efa57-630b-4861-b058-cf58834340f0
2010-07-08 14:19:52 +00:00
ccavazzoni 36fc9e08d4 - Bug fix for a subtle error.
Exchange and Correlation potential was not initialized
  when condition (arhox.gt.1.d-30) was not satisfied.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6852 c92efa57-630b-4861-b058-cf58834340f0
2010-06-20 13:00:32 +00:00
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
ccavazzoni 9d57e50a76 - bug fix in OpenMP parallelization
- avoid mesuring cpu time for scalar diag when number of states>=1000


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5601 c92efa57-630b-4861-b058-cf58834340f0
2009-06-14 19:20:28 +00:00
ccavazzoni f1c391fa58 - OpenMP parallelization
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5567 c92efa57-630b-4861-b058-cf58834340f0
2009-05-24 17:33:58 +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 fc9a9eb140 - array dbec distributed across processors of the ortho group
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5134 c92efa57-630b-4861-b058-cf58834340f0
2008-08-26 11:56:25 +00:00
cavazzon 0f004f12d3 - cleanup: removed duplicate subroutines, removed the awkward section
in the restart subroutine related to the possibility of "correclty"
  restart a simulation setting to zero the velocities of some degree
  of freedom.
  Simple tests shows that if a simulation is restarted setting to
  zero the velocities of electrons without setting to zero the velocities
  of ions and vice versa, the generated trajectories of ions contain
  unphysical fast oscillations.
- Some improvement in the parallelism when cell dynamics is active.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5122 c92efa57-630b-4861-b058-cf58834340f0
2008-08-21 17:01:46 +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
cavazzon 04448957a4 - Bug fix, restart a SIC calculation with force pairing
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4817 c92efa57-630b-4861-b058-cf58834340f0
2008-04-17 21:50:10 +00:00
cavazzon 3b61944c12 - clean-up, there was still two version of rhoofr,
now only one remains


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4554 c92efa57-630b-4861-b058-cf58834340f0
2007-12-24 10:21:20 +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
cavazzon 360fe0fc38 - nlfq, parallelization of the contribution to fion,
allocated memory now scale with the number of processor
  in the ortho group. To be exact memory scale like the
  square root of the number of processor used in the ortho
  group. With 4 proc the allocated memory is 1/2 of the memory
  required with a single proc.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4058 c92efa57-630b-4861-b058-cf58834340f0
2007-07-24 14:42:59 +00:00
cavazzon 80bd402965 - LDA plus U added to CP 3.2,
potentials and energy is ok, on the forces there is still
  some small problems. Further clean ups required.
  Contributed by
  Patrick Sit


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3605 c92efa57-630b-4861-b058-cf58834340f0
2006-12-15 17:58:58 +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 2b6ec5e869 - bug fix in sub nlsm1.
Bug was present only in CVS for pseudopotentials with "nh = 0"
  this was causing example28 to fail


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3368 c92efa57-630b-4861-b058-cf58834340f0
2006-09-07 19:36:27 +00:00
cavazzon b89b7b3261 - workaround (intel-9+mpich-1.2.6..14a):
mp_sum (MPI_ALLREDUCE) fails with 0 sized array
  ( but F90 allows array to have a size of 0! )


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3307 c92efa57-630b-4861-b058-cf58834340f0
2006-08-04 12:06:06 +00:00
cavazzon c7898d6453 - empty states calculation implemented also for CP
- some more merging
- some dependency removed
- clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3190 c92efa57-630b-4861-b058-cf58834340f0
2006-06-22 10:05:15 +00:00
giannozz 3ee41c0115 Various fixes for compilation on Alphas (courtesy of Giovanni Cantele)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3129 c92efa57-630b-4861-b058-cf58834340f0
2006-05-18 16:09:47 +00:00
cavazzon c021112ee3 - Cray XD1 workaround for large communication
- BGL porting of CP almost complete. New command
  line argument "-ntask_groups" to specify the
  number of task group used in parallelization.
  to generate an executable with BGL extensions,
  in the file make.sys the macro __BGL should
  be specified.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3069 c92efa57-630b-4861-b058-cf58834340f0
2006-05-03 14:19:57 +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
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 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
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 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
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 7c76ae48c1 - fix for fpmd2upf.f90, it did not compile
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1882 c92efa57-630b-4861-b058-cf58834340f0
2005-05-19 11:09:42 +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
cavazzon 193516156e - clean-ups, comments and merging
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1829 c92efa57-630b-4861-b058-cf58834340f0
2005-04-22 15:23:19 +00:00
cavazzon 89ab8f3e55 - FPMD files added to CPV directory
- FPMD directory is no more needed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1479 c92efa57-630b-4861-b058-cf58834340f0
2004-11-25 14:51:47 +00:00