Commit Graph

29 Commits

Author SHA1 Message Date
giannozz e193710eaa Routines invmat, invmat_complex, dinv_matrix, zinv_matrix merged into a small
module invmat. Should be harmless, but please check.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12028 c92efa57-630b-4861-b058-cf58834340f0
2016-01-20 10:34:27 +00:00
dalcorso 68efc97942 Avoid negative values in format when there are more than three angular momenta.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10298 c92efa57-630b-4861-b058-cf58834340f0
2013-06-04 13:49:32 +00:00
giannozz 3487bacc27 Always set ios in case of error, useless stop command removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10293 c92efa57-630b-4861-b058-cf58834340f0
2013-06-01 10:33:31 +00:00
giannozz 97bb4f2613 Cleanup of pseudo_dir hack. Now: pseudo_dir is what was read from output;
pseudo_dir_cur is where PP files are after a restart.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8055 c92efa57-630b-4861-b058-cf58834340f0
2011-08-07 07:25:02 +00:00
riccardo bc21554b27 Added the non-local (nlc) flag to the dft definition. Now PP and dft
needs five interegers to be fully defined (all the back-compatibility
has been respected).

Added drivers and functions to implement new non-local functionals.

Added the vdw-DF2 (to test).

Fixed how shortnames are handled in input (funct.f90)



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7706 c92efa57-630b-4861-b058-cf58834340f0
2011-04-27 15:18:18 +00:00
giannozz 32e0af51be Several '' (nonstandard) replaced with ' ' (standard), or with "
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7288 c92efa57-630b-4861-b058-cf58834340f0
2010-12-07 16:17:49 +00:00
giannozz a3a39fc998 Cleanup: uniform spelling for "Quantum ESPRESSO", removal of f_defs.h,
CMPLX is explicitly typed, blas/lapack are lowercase (consistently with
the convention: FORTRAN COMMANDS = uppercase, all the rest lowercase)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5789 c92efa57-630b-4861-b058-cf58834340f0
2009-08-01 14:26:46 +00:00
paulatto ba4e005094 This is a quite complex check-in, but actually not very much is done. Changelog follows.
LP

UPF file format updated completely, UPFv2 introduced:
* ld1.x can still produce old format, with the switch upf_v1_format=.true. in inputp
  this is disabled by default, but we can discuss if it should be the opposite.
* pw.x cp.x and all utilities should notice no difference
* some utilities in upftools still need to be updated, anyway conversion UPFv1 to UPFv2
  is very easy, so this should be no big issue
* starting from now to produce an UPF file you need to fill the pseudo_upf derivedd type
  and feed it to write_upf woutine in upf_module (Modules/upf.f90)
* extensive use of iotk

I have tried to make the new format as self contained as possible, e.g. there should be
minimal need for post-processing after the data is read, no more reconstruction of known
quantities, and no more odd syntax to save negligible quantity of space. Also the human
readable section is a bit richer, all the rest is more machine readable.

I hope this will not cause any throuble, and tried really hard to, all examples and all
tests works as fine as before and gives (what really looks like) the same results.

Other changes that I needed to make:
* radial grids are now allocatable, they management is a bit less of a hack too
* paw and uspp augmentation are stored in the same place
* paw print total all-electron energy if all atoms are paw, not very useful, but nice
* most of the pseudopotential-writing reading files have been renamed to  some more
  logical name, I spare you the list. E.g. read_oldpseudo -> read_pseudo_rrkj3
* paw_t derived type was only used in atomic, so I have put it there (as the pseudo_type
  module take ages to recompile it was awkward to leave it there).

PAW tests inserted in test/ there are 6 of them, as a consequence I have also put 5 paw
pseudopotentials in the pseudo/ directory.

I will update the PAW scf examples soon, by deleting them (as running a pw with a PAW
pseudopotential requires no option at all). PAW generation examples should be updated.

A lot of small bugfixes here & there mostly uninitialized variables or unallocated
pointers used as subrotuine arguments.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4769 c92efa57-630b-4861-b058-cf58834340f0
2008-04-03 15:50:43 +00:00
giannozz 2b45be3aa5 Yet another unitialized (il-)logical variable: upf%tpawp was not
initialized when a non-UPF pseudopotential was read. On most machines
it defaults to 0, i.e. .false., that is good, but sometimes it doesn't


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4627 c92efa57-630b-4861-b058-cf58834340f0
2008-01-15 18:06:09 +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
giannozz 20fcc995ae Problems with old Vanderbilt formats fixed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4346 c92efa57-630b-4861-b058-cf58834340f0
2007-10-16 20:49:00 +00:00
giannozz f7e95b2df4 No reason to use pseudopotential arrays starting from 0 instead of 1;
obsolete variable removed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4323 c92efa57-630b-4861-b058-cf58834340f0
2007-10-08 07:33: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
giannozz 216c32ccd3 The following pseudopotential-related variables in module uspp_param:
zp, psd, dion, betar, jjj, qqq, qfunc, qfcoef, vloc_at, rinner,
   nbeta, kkbeta, nqf, nqlc, lll, tvanp
have been replaced by the corresponding variables in structure 'upf'.
There shouldn't be any side effects, but who knows. There is still a
copy of the above variables that will be removed sooner or later.
Basically : variable([i,j,k,..,]n) => upf(n)%variable [(i,j,k,..)]
Note that upf%qfunc has for the time being three indices instead of two,
and that upf%kkbeta is the analogous of kkbeta and not what it used to be.
The logic of this operation will be clearer when it will be completed


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4308 c92efa57-630b-4861-b058-cf58834340f0
2007-10-05 09:26:23 +00:00
giannozz 75a35c3282 All pseudopotentials of pwscf are read into the "upf" structure and
then copied into the internal modules. This is a first step towards
1) elimination of fixed-dimension atomic pseudopotential arrays,
2) reduction of memory usage by pseudopotentials,
3) cleanup of the pseudopotential mess.
Next steps: 1) the same in CP, 2) replacement of variables in "uspp"
module with an array of "upf" structures.

Beware: calculations using old formats should work as before, but
don't count on it


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4299 c92efa57-630b-4861-b058-cf58834340f0
2007-10-02 16:54:13 +00:00
giannozz 58cc9c49bc Removed a few static arrays with dimension ndmx
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4214 c92efa57-630b-4861-b058-cf58834340f0
2007-09-05 11:00:15 +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
giannozz 9adfa66a70 error message fixed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3978 c92efa57-630b-4861-b058-cf58834340f0
2007-06-21 15:27:34 +00:00
giannozz 45ae58d60b All occurrences of d0, d+N, d-N, replaced with fortran-90 style _DP.
Please do not re-introduce old-style syntax. A uniform syntax allows
if the need arises to change the precision in less than no time.
Courtesy of Pascal Thibeaudeau. Modules/ directory only.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3964 c92efa57-630b-4861-b058-cf58834340f0
2007-06-11 17:13:15 +00:00
giannozz 054e721960 Misc pseudopotential cleanup: upf_to_internal merged between CP and PW;
PAW-related stuff extracted and put into the paw module; various checks
moved to more appropriate places; initialization of obsolete variables
lloc and lmax moved elsewhere; variable zp moved to uspp_param.
All PP-reading subroutines (too many) read zp, not zv; zv is set later.
Summary for pseudopotentials unified and purged of printout of
obsolete/unused/unset variables.
PW/readin.f90 renamed to something more suggestive of what it does
(PW/read_pseudo.f90). Module PW/upf_to_internal.f90 moved to Modules/,
routine upf2internal removed from CPV/read_pseudo.f90.
Harmless error in berry phase + a few bad formats in GIPAW fixed.
Dependencies and Makefiles updated.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3851 c92efa57-630b-4861-b058-cf58834340f0
2007-03-18 19:24:56 +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
giannozz 6e55c387ee Axel's patch: removal of unused variables, replacement of variable "index"
with a less dangerous "idx" ("index" is an intrinsic: some compilers may
complain, or even do strange things)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3574 c92efa57-630b-4861-b058-cf58834340f0
2006-11-27 15:06:51 +00:00
giannozz 19b7ba4744 Symmetric indices of variable qfunc, holding the Q(r) functions in
Ultrasoft PPs, merged into a single index. The logic of the index
should be the same as for the other USPP_related variables. Tested
for UPF format, should work for old van and rrkjus formats as well,
but I haven't tested it (tests very welcome).

Why? with default static dimensions, qfunc took 40Mb. Some compilers
(e.g. g95) store a copy of statically dimensioned arrays in objects
and executables, so 'make all' produced *.x for 1Gb or so ...
Apart from this, wasting nonscalable memory should be avoided anyway
in massively parallel machines.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3506 c92efa57-630b-4861-b058-cf58834340f0
2006-11-03 12:21:28 +00:00
giannozz 683300e3cc g95 doesn't like reading a character variable into a real variable
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3375 c92efa57-630b-4861-b058-cf58834340f0
2006-09-12 12:55:30 +00:00
sbraccia d340b6f816 Only meta_ionode writes on stdout. C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3039 c92efa57-630b-4861-b058-cf58834340f0
2006-04-24 14:44:58 +00:00
giannozz fc3228722f - RRKJ PP in old format: flagging wavefunctions with zero occupancies
as unbound (negative occupancy) had disappeared but it is still needed
  to prevent strange errors
- minor cleanup


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3007 c92efa57-630b-4861-b058-cf58834340f0
2006-04-07 10:39:39 +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 952cccc8ce oops...RRKJ3 format was not working
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2878 c92efa57-630b-4861-b058-cf58834340f0
2006-03-07 17:22:55 +00:00
giannozz dda5f85506 More USPP cleanup (or maybe mess-up) and memory reduction
Only CP compiles right now, the rest is coming soon


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2872 c92efa57-630b-4861-b058-cf58834340f0
2006-03-07 13:26:52 +00:00