Commit Graph

33 Commits

Author SHA1 Message Date
sclauzer 53385d4cc5 Offsets of atomic wavefunctions used for LDA+U projections is now computed only once in setup and stored,
instead of recomputing them several times (they do not change during the run).
GS


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5997 c92efa57-630b-4861-b058-cf58834340f0
2009-10-07 13:11:59 +00:00
giannozz 3cd50d0257 More cleanup: spelling of Quantum ESPRESSO, CMPLX explicitly cast, f_defs.h
removed, a few REAL transformed into DBLE. Note that my previos statement
about REAL is overblown: REAl(C) is perfectly safe if C is a double precision
complex number. All changes should be safe.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5793 c92efa57-630b-4861-b058-cf58834340f0
2009-08-01 17:48:59 +00:00
cavazzon 6e6630adbe - reduce replaced by mp_sum
- sub. reduce, removed from para!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4826 c92efa57-630b-4861-b058-cf58834340f0
2008-04-20 21:23:37 +00:00
cavazzon 259fe1b6e7 - celanup, poolreduce replaced by mp_sum(...,inter_pool_comm)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4643 c92efa57-630b-4861-b058-cf58834340f0
2008-01-23 16:53:17 +00:00
giannozz bdae2b6cb1 Cleanup of wavefunction initialization. Since I wasted two hours hunting
for a bug, before I realized that there were two copies of "gamma_only",
I wasted two more hours to iuse a single value of "gamma_only" (the one
oin control_flags).


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4468 c92efa57-630b-4861-b058-cf58834340f0
2007-11-22 14:23:04 +00:00
degironc a6b0fea63d more changes in scf_mod. mix_rho is getting simpler and more transparent,
scf_mod contains more stuff, but it should be rather simple.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4419 c92efa57-630b-4861-b058-cf58834340f0
2007-11-10 15:07:51 +00:00
paulatto 2130e0ae14 d1, d2 and d3 matrices (used to symmetrize lda+u ns) moved from module ldau to module symme, thay will be used for PAw too. A few small
fixes.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4400 c92efa57-630b-4861-b058-cf58834340f0
2007-11-06 12:54:17 +00:00
giannozz 8df6e5b3a5 More removal of static arrays: chi, nchi, lchi, jchi, oc, nchix
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4362 c92efa57-630b-4861-b058-cf58834340f0
2007-10-23 19:47:26 +00:00
degironc e6c7ae2434 check on symmetry of nsnew variable (LDA+U) has been corrected.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3909 c92efa57-630b-4861-b058-cf58834340f0
2007-04-12 16:28:59 +00:00
giannozz 0a862b7402 Added possibility (not yet activated) of keeping wavefunctions in memory.
File buffers.f90 contains replacements - with different names and syntax -
for diropn (open_buffer) and davcio (get_buffer, save_buffer). If you have
better names, please go ahead. Works for a single buffer right now.

Pitfalls: nwordwfc is now defined as the number of complex words, no longer
of real words, but only in PW/, so mixing routines from PW with routines from
other codes may run into trouble (although I didn't see any side effect).
Restart may no longer work in some specific cases.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3800 c92efa57-630b-4861-b058-cf58834340f0
2007-02-21 13:01:31 +00:00
giannozz 6428be9581 There is no reason to write to file the number of planewaves per k-point:
it is stored in memory anyway


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3705 c92efa57-630b-4861-b058-cf58834340f0
2007-01-22 16:38:47 +00:00
degironc 282f153388 unit name change: iunat => iunsat (it contains S * atomic wfc)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3511 c92efa57-630b-4861-b058-cf58834340f0
2006-11-05 02:47: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 dfac0d6c83 References to para module replaced (everywhere in PW ) by references to mp_global, pfft, pffts.
Old parallel variables me and mypool have been replaced by me_pool ( = ( me - 1 ) ) and my_pool_id ( = ( mypool - 1) ), defined in mp_global.
The old combination ( me == 1 .AND. mypool == 1 ) used in the I/O should be replaced by the logical variable ionode.
All parallel variables (communicators included) are properly defined in the serial case too, so that "#ifdef __PARA" is not
needed.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1338 c92efa57-630b-4861-b058-cf58834340f0
2004-09-27 09:11:56 +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 d1579c66ec Removed references (not yet everywhere) to module basis for those variables already in module ions_base.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@953 c92efa57-630b-4861-b058-cf58834340f0
2004-06-12 13:44:18 +00:00
giannozz 4a5732790a Part of the variables for ultrasoft pseudopotentials have been moved to a
new module uspp_param, shared between PW and CP (in file Modules/uspp.f90)
The flag newpseudo is no longer used to decide whether states with oc=0 are
bound or not: for those states, and only for the old RRKJ format, oc is set
to a negative value, and this signals that they are not bound. Not elegant
but simpler than it used to be. The converter to UPF format did not include
those states anyway. Beware unexpected side effects!


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@914 c92efa57-630b-4861-b058-cf58834340f0
2004-05-26 11:04:07 +00:00
fabris 73d33ae8ad Implementation of LDA+U gamma_only calculations.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@588 c92efa57-630b-4861-b058-cf58834340f0
2004-02-12 12:32:06 +00:00
fabris 47fac06b25 Bug fix.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@584 c92efa57-630b-4861-b058-cf58834340f0
2004-02-11 12:38:59 +00:00
giannozz ce43e861ab More module cleanup : pwcom no longer called in PW/
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@519 c92efa57-630b-4861-b058-cf58834340f0
2004-01-24 15:43:09 +00:00
cavazzon c5d8ff2f66 - unit 6 replaced by stdout in CPV
- ^M removed from pseudo files
- wavefunctions arrais moved to module
  wavefunctions_module, common to all codes
  this is required to reduce duplicated subroutine
- new lapack subroutine, called from PWCOND,
  added to lib/lapack.f lib/lapack_ibm.f


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@381 c92efa57-630b-4861-b058-cf58834340f0
2003-11-09 10:42:50 +00:00
sbraccia 24ce939aeb Unit stdout (set in Modules/io_global.f90) is used to write on standard output
instead of 6 or *.
C.S.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@365 c92efa57-630b-4861-b058-cf58834340f0
2003-11-04 10:53:05 +00:00
cavazzon 1d34b5c0a8 non collinear spin version of PW,
contributed by Adriano Mosca Conte,
added to the repository.
The non collinear code has required
a new module "wavefunctions" containing
"psic" and "evc", that no longer belong
to pwcom.

use: cvs update -d

there's a new example (example13), that is not
yet complete, I'm waiting for the appropriate
pseudopotential from Adriano


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@322 c92efa57-630b-4861-b058-cf58834340f0
2003-10-03 14:01:11 +00:00
cavazzon cbff0f48de different modules containing filenames and directories
substituted by common module:
Modules/io_files.f90


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@317 c92efa57-630b-4861-b058-cf58834340f0
2003-09-23 14:45:12 +00:00
degironc 0deeeaba5b 30 Jul 2003 indexing of the occupation matrices (ns,nsnew, etc) used in
LDA+U has been redefined in a more natural order:
             ns(na,is,ldim,ldim) -> ns(ldim,ldim,is,na)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@281 c92efa57-630b-4861-b058-cf58834340f0
2003-07-31 12:54:09 +00:00
degironc a2b9012503 first fix needed by LDA+U calculations w/o spin
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@133 c92efa57-630b-4861-b058-cf58834340f0
2003-03-25 12:01:01 +00:00
degironc 7bf0c09bf6 20 mar 2003 - relaxation using damped dynamics can be used keeping fixed
last fixatom atoms (with the same input procedure as the bfgs
             minimization).
             - LDA+U part has been modified in order run also in the not
             spin-polarized case (some testing still neeeded).
             - Davidson diagonalization returns best estimate for
             eigenvalues and eigenvectors also in the case that not all
             roots have converged. This is more consistent and should
             somehow alleviate the problem of WARNING messages in scf and
             band structure run.
             - Number of beta function in pseudopotentials increased to 8.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@130 c92efa57-630b-4861-b058-cf58834340f0
2003-03-20 11:21:34 +00:00
degironc f07110cdb3 27 feb 2003 Bug in PW/new_ns.f90 (Lixin He) fixed
Symmetrization of occupation matrix ns needed for LDA+U
             calculations used incorrectly d2 matrices instead of their
             transponse. Similar error corrected also in PP/projwave.f90


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@97 c92efa57-630b-4861-b058-cf58834340f0
2003-02-27 10:00:00 +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
degironc 5cfeb5079b 10 feb 2003 lda+u stuff modified in order to work also for non-d
localized orbitals. Hubbard_l=0,1,2,3 are now possible.
             It has been tested that calculations done for Hubbard_l=2
             are reproduced. More testing on non-d material needed.
             SdG + Gabriele Balducci


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@57 c92efa57-630b-4861-b058-cf58834340f0
2003-02-10 08:58:33 +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