Commit Graph

28 Commits

Author SHA1 Message Date
giannozz 42f4956103 Obscure error messages slightly clarified
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5094 c92efa57-630b-4861-b058-cf58834340f0
2008-07-31 15:59:22 +00:00
cavazzon cac89b2b3c - another fix for PGI bug (that is exploited in contained subrotuines that access
array arguments of the mother sub. with explicit dimensions)
- task groups implemented for k points too.
- task groups implemented also in the loop over bands contained in sum_band
- task groups NOT YET implemented for non collinear spin and meta dft


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4587 c92efa57-630b-4861-b058-cf58834340f0
2008-01-02 11:47:04 +00:00
giannozz f0b1c48ff4 Old parallel subspace diagonalization (with matrix not distributed) removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4464 c92efa57-630b-4861-b058-cf58834340f0
2007-11-21 20:45:16 +00:00
cavazzon 1917ee9a65 - block-like parallelization of cdiaghg,
no global replicated matrix are now allocated inside cdiaghg
- real routine will follow soon
- note that the number of processors involved in diag.
  is the largest square smaller or equal to nproc_pool
- it is possible to suggest a different number of processors in
  the input with the parameter: ortho_para (like for cp)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4104 c92efa57-630b-4861-b058-cf58834340f0
2007-08-09 20:48:22 +00:00
sbraccia adc692d6e2 Added parallel routines for matrix-matrix, and matrix-vector multiplications and
for Cholesky decomposition. These routines are used to parallelize the solvers
for the generalized eigenvalue problems, namely rdiaghg and cdiaghg (notice that
the inversion of the lower triangular matrix L is still done using a serial
lapack routine). These two routines are now used for Davidson parallelization.
Old algorithm based on the orthogonalization of the correction vectors has been
removed (it was awfully slow). The performance of the new algorithm should be
decent. Beware unexpected side effects. C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3310 c92efa57-630b-4861-b058-cf58834340f0
2006-08-08 21:14:26 +00:00
cavazzon a5a5516f62 - workaround for a bug of PGI compiler
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3296 c92efa57-630b-4861-b058-cf58834340f0
2006-07-27 15:54:41 +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
cavazzon 3743532327 - fixed a bug that was causing the code to hang when checking
the performance of the parallel diagonalization
- call of diagonalize in rdiagh using leading dimension for h


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2775 c92efa57-630b-4861-b058-cf58834340f0
2006-02-07 13:46:56 +00:00
cavazzon 79df35d971 - cdiagonalize updated to work with arrays with a leading
dimension different from "n"
- copy of h and v in cdiagh eliminated
- some other clean ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2771 c92efa57-630b-4861-b058-cf58834340f0
2006-02-05 17:25:03 +00:00
sbraccia 3958d9b912 Davidson with parallel subspace diagonalization implemented. At startup the code automatically
checks whether or not it is convenient to use the parallel diagonalizer reporting the result.
The output is still verbose to facilitate the identification of bugs.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2767 c92efa57-630b-4861-b058-cf58834340f0
2006-02-03 20:20:55 +00:00
giannozz 04829cc556 - Version number updated to 3.1
- Changed format when writing a copy of the UPF file: for some reason
  the free format adds an initial blank character, causing the program
  to fail when reading (in fixed format) additional info for spin-orbit.
  Format A is now used when writing, free format when reading. (AdC)
- More preprocessing cleanup and documentation: anybody having access
  to weird machines is kindly requested to verify if things work


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2732 c92efa57-630b-4861-b058-cf58834340f0
2006-01-26 16:42:14 +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 0caeadbd7b Machine-dependent definitions are now contained in two different files (both in /include):
1) f_defs.h  for definitions to be included in FORTRAN files ONLY
   2) c_defs.h  for definitions to be included in C       files ONLY

C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1012 c92efa57-630b-4861-b058-cf58834340f0
2004-06-25 17:25:37 +00:00
sbraccia 7359b6ca2f The array of communicators was non necessary (thanks to SdG): removed everywhere.
Fixed a serious bug in para.f90 (introduced in the last commit).
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@744 c92efa57-630b-4861-b058-cf58834340f0
2004-03-24 16:30:44 +00:00
sbraccia 2a99b6fdac 1) An experimental parallelization of NEB images has been implemented.
This required a deep modification of the parallelism in PWscf:
there are two new communicators (intra_image_comm and inter_image_comm) and the
existing "pool" communicators (intra_pool_comm and inter_pool_comm) are now vectors
of length given by the number of parallel images. #ifdef __PARA is no longer
needed because all "parallel" variables are always initialized for a serial run
and all parallel routines are, in the case of a serial run, dummy routines.
The wrappers to MPI routines used only by PWscf are in the PW/para.f90 file.
The others (mp_***) are in the Modules/mp.f90. All explicit referencies to mpif.h
should be replaced by an "USE parallel_include" (in a serial run parallel_include
is simply a dummy module).

2) The extrapolation of both potential and wavefunctions has been rewritten in
order to be smarter than before: on the basis of the required extrapolation
order, on the basis of the history and on the basis of which files are really
present on the disk, the algorithm chooses the extrapolation order.
All the algorithms in which ions are moved can use the extrapolation.

These are both unstable features: I need the help of everybody to test them.

C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@742 c92efa57-630b-4861-b058-cf58834340f0
2004-03-24 09:36:50 +00:00
giannozz 581e56d3ec Two instances of the same variable in efg.f90 (found by Antonio Tilocca)
Cleanup, doc, workaround for yet another ifc8 bug, no more #ifdef ZHEGVX


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@722 c92efa57-630b-4861-b058-cf58834340f0
2004-03-15 10:07:07 +00:00
sbraccia c782b18fe1 Fixed an error in the call to mp_bcast (the correct communicator was missing).
Explicit referencces to MPI_barrier replaced with calls to mp_barrier.
Some cleanup.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@705 c92efa57-630b-4861-b058-cf58834340f0
2004-03-08 15:30:40 +00:00
sbraccia 7802c6c40c Calls to broadcast replaced by calls to mp_bcast everywhere.
All kinds ionic dynamics are done by a single cpu (see move_ions.f90).
After the ions are moved the new positions (and other information) are
broadcasted to all other cpus.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@701 c92efa57-630b-4861-b058-cf58834340f0
2004-03-07 17:18:22 +00:00
giannozz 0b1a5c9fd8 Extensive module cleanup: DP moved from wrong place (parameters) to the
correct place (kinds); module "varie" replaced by "control_flags" (not
yet in pwcom, though) - many many files changed.
64-bit cpus (Opteron, maybe Itanium) should now work if __LINUX64 is defined


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@513 c92efa57-630b-4861-b058-cf58834340f0
2004-01-23 15:08:03 +00:00
sbraccia 2efd90d37f General cleanup. The threshold for diagonalization (ethr) is now fixed to 1.D-5 at the first scf iteration (iter=1). A check is then performed to verify that the resulting density is adeguate (dr2/nelec > ethr). If it is not the diagonalization goes on with a smaller ethr. For iter > 1 ethr is updated with the old recipe. Also added a warning in update_pot that indicates "problems" in the wfc extrapolation. This problem has not yet been fixed.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@495 c92efa57-630b-4861-b058-cf58834340f0
2004-01-20 12:26:22 +00:00
giannozz 7c0d2d8bef "configure" bug for pc cluster and intel 6
Make.rules_cpp => Rules.cpp, Make.rules_nocpp => Rules.nocpp
lapack_mkl.f added, __MKL removed
Make.{fujutsu,sxcross}, compile error in restart.f90 (Guido)
electrons, punch_band, plot_bands: use the same format
for reading and writing eigenvalues


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@119 c92efa57-630b-4861-b058-cf58834340f0
2003-03-10 14:49:21 +00:00
giannozz 5542a00340 Misc. installation and doc fixes
T3D, T3E, __CRAY => __T3E  ; PC => __LINUX


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@99 c92efa57-630b-4861-b058-cf58834340f0
2003-02-27 13:59:04 +00:00
giannozz 9401532be0 Installation with Intel compiler merged: pc_ifc should install all codes
PC => __INTEL , MKL => __MKL


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@96 c92efa57-630b-4861-b058-cf58834340f0
2003-02-26 21:25:31 +00:00
cavazzon d16e2e87f7 - AIX changed in __AIX
- Machine file Make.ibmsp now is common to all codes,
  Make.cp.ibmsp removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@90 c92efa57-630b-4861-b058-cf58834340f0
2003-02-23 11:34:24 +00:00
giannozz 9e3a2de758 Support for lahey compiler added: "error" renamed to "errore", "rnd" to "rndx"
bug in io_base fixed
PARA => __PARA
cinterpolate moved into interpolate


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@86 c92efa57-630b-4861-b058-cf58834340f0
2003-02-21 14:57:00 +00:00
giannozz d852392cab module allocate, calls to mallocate, mfree removed
pointers replaced by allocatable whenever possible


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@56 c92efa57-630b-4861-b058-cf58834340f0
2003-02-07 16:04:36 +00:00
giannozz ac9f2144c0 O-sesame
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2 c92efa57-630b-4861-b058-cf58834340f0
2003-01-19 21:58:50 +00:00