1. 23 Dec, 2011 1 commit
  2. 06 Aug, 2011 1 commit
  3. 14 Feb, 2011 1 commit
  4. 04 Feb, 2011 1 commit
  5. 03 Jan, 2011 1 commit
  6. 29 Dec, 2010 1 commit
  7. 07 Oct, 2010 1 commit
  8. 19 Sep, 2010 1 commit
  9. 24 Nov, 2009 1 commit
  10. 21 Nov, 2009 1 commit
  11. 18 Sep, 2009 1 commit
  12. 01 Aug, 2009 1 commit
  13. 27 Dec, 2007 1 commit
  14. 19 Sep, 2007 1 commit
  15. 18 Sep, 2007 1 commit
    • paulatto's avatar
      SCF with Projector-Augmented Wave Pseudopotential (PAW) routines added. · 08fedbe2
      paulatto authored
      This means that a lot of routines have been modified and a few files have
      been added. During the year several people have contributed to this code,
      mainly Guido Fratesi, Ricardo Mazzarello, Stefano de Gironcoli, Andrea Dal
      Corso and me (Lorenzo Paulatto).
      
      A brief report of modified or added files follows, further down you will
      find a loger report of modifications that was necessary to merge develop_PAW
      branch with the current CVS version.
      
      Current version is not 100% functional, but it doesn't brake anything else and
      can be used to generate and test PAW pseudopotential.
      
            *************************************
            *** Brief report of modifications ***
            *************************************
      Modified files:
      PW/clean_pw.f90
      PW/electrons.f90
      PW/print_clock_pw.f90
      PW/hinit0.f90
      PW/potinit.f90
      PW/newd.f90
      PW/summary.f90
      PW/setup.f90
      PW/read_pseudo.f90
      PW/init_us_1.f90
      PW/init_run.f90
      PW/mix_rho.f90
      atomic/atomic_paw.f90
      atomic/write_paw_recon.f90
      atomic/ld1_writeout.f90
      atomic/write_resultsps.f90
      atomic/ld1inc.f90
      atomic/ld1_readin.f90
      atomic/gener_pseudo.f90
      atomic/parameters.f900
      atomic/run_pseudo.f900
      atomic/set_rho_core.f90
      atomic/pseudovloc.f90
      Modules/read_upf.f90
      Modules/uspp.f90
      Modules/pseudo_types.f90
      Modules/parameters.f90
      
      Added files:
      PW/grid_paw_routines.f90
      PW/rad_paw_routines.f90
      Modules/grid_paw_variables.f90
      Modules/read_paw.f90
      
      Added files that will be removed:
      PW/rad_paw_trash.f90
      PW/paw_xc.f90
      
      Examples:
      examples/PAWexample contains a full test of PAW pseudopotential
      for Oxygen. The test consist in these tasks:
       - 2 norm conserving, 2 US and 4 PAW pseudopotentials are
         generated and tested in ld1
       - pw test for an isolated O atom at different cutoffs
       - pw test for an O2 molecule at different O-O distance
      please read examples/PAWexample/README for (a few) details.
      
      NOTES:
      1. new modifications to atomic_paw (and related) from ADC have been rolled
         back, as they were breaking a lot of things, I will reintroduce them
         later when I am sure that everything works properly.
      2. the files PW/paw_xc.f90 and Modules/rad_paw_trash.f90 will be removed in
         the next few weeks.
      
      TODO:
      1. use new ld1 XC code as much as possible, and remove legacy XC routines
         from rad_paw_routines
      2. full self-consistency with radial energies
      3. make new Harris-Foulkes estimate paw-aware
      4. provide some kind error estimate
      5. FORCES and stress!! (require symmetrization of becsums)
      6. cleanup
      
          ************************
          *** merge of PW code ***
          ************************
      Versions notation:
      OLD=version from 2 years ago used as reference to generate the patches
      NEW=CURRENT=current trunk version
      PAW=current develop_PAW version
      
      Note: pseudo-potential input and allocation routines changed
            a lot in the last years, this is a diagram:
      OLD:PW/readin ~~> PAW:PW/read_pseudo --> disappears
      pops out --> PAW:PW/readin ~~> NEW:PW/read_pseudo
      
      added files:
      Modules/read_paw.f90    (contains module read_paw_module with subroutines
                               paw_io nullify_pseudo_paw, allocate_pseudo_paw and
                               deallocate_pseudo_paw previously in removed file
                               Modules/readpseudo.f90. Also contains module
                               paw_to_internal with subroutine set_pseudo_paw,
                               previously in upf_to_internal.f90)
      PW/paw_xc.f90           (contains OLD=PAW xc and gcxc routines as adapting paw
                               grid code to use new routines was very error prone and
                               quite worthless, as it has to be removed anyway)
      
      Conflicts reported by CVS during merge:
      DONE */Makefiles                    (all replaced with new, redone by hand)
      
      DONE  flib/functionals.f90          (nothing to do)
      
      DONE Modules/functionals.f90        (RNV == replaced with NEW version)
      DONE Modules/atom.f90               (trivial: duped rgrid)
      DONE Modules/autopilot.f90          (trivial)
      DONE Modules/bfgs_module.f90        (RNV)
      DONE Modules/cell_base.f90          (RNV)
      DONE Modules/check_stop.f90         (RNV)
      DONE Modules/constants.f90          (RNV)
      DONE Modules/constraints_module.f90 (RNV)
      DONE Modules/energies.f90           (RNV)
      DONE Modules/input_parameters.f90   (RNV)
      DONE Modules/ions_base.f90          (RNV, has 3 new subs)
      DONE Modules/ions_nose.f90          (RNV)
      DONE Modules/parameters.f90         (actually RNV)
      DONE Modules/path_base.f90          (RNV)
      DONE Modules/path_opt_routines.f90  (RNV)
      DONE Modules/path_reparametrisation.f90 (RNV)
      DONE Modules/path_variables.f90     (RNV)
      DONE Modules/pseudo_types.f90       (cleaned double def of paw_t)
      DONE Modules/read_cards.f90         (RNV)
      DONE Modules/read_namelists.f90     (checked and RNV)
      DONE Modules/uspp.f90               (trivial)
      DONE Modules/xml_io_base.f90        (RNV)
      
      DONE PW/read_pseudo.f90             (merged by hand with PAW PW/readin)
      
      DONE PW/bp_calc_btq.f90             (trivial)
      DONE PW/c_bands.f90                 (actually RNV)
      DONE PW/ccgdiagg.f90                (RNV)
      DONE PW/cegterg.f90                 (RNV)
      DONE PW/cft3s.f90                   (RNV)
      DONE PW/cinitcgg.f90                (RNV)
      DONE PW/c_phase_field.f90           (RNV)
      DONE PW/divide_et_impera.f90        (nothing to do?)
      DONE PW/exx.f90                     (RNV)
      DONE PW/hinit0.f90                  (easy)
      DONE PW/h_psi.f90                   (RNV)
      DONE PW/init_run.f90                (easy)
      DONE PW/kpoint_grid.f90             (nothing to do?)
      DONE PW/newd.f90                    (required mod in newd_paw_grid, CHECK!!)
      DONE PW/openfil.f90                 (actually RNV)
      DONE PW/paw.f90                     (actually RNV)
      DONE PW/punch.f90                   (RNV)
      DONE PW/pwscf.f90                   (quite RNV)
      DONE PW/set_kup_and_kdw.f90         (RNV)
      DONE PW/setup.f90                   (RNV + 2 line merged by hand)
      DONE PW/sgama.f9                    (actually RNV)
      DONE PW/sgam_at_mag.f90             (actually RNV)
      DONE PW/stop_run.f90                (actually RNV)
      DONE PW/stres_gradcorr.f90          (actually RNV)
      DONE PW/symrho_mag.f90              (nothing to do)
      DONE PW/v_of_rho.f90                (RNV)
      
      DONE PW/compute_fes_grads.f90       (RNV)
      DONE PW/gradcorr.f90                (RNV)
      DONE PW/input.f90                   (RNV)
      DONE PW/pw_restart.f90              (RNV)
      DONE PW/read_ncpp.f90               (actually RNV)
      DONE PW/summary.f90                 (RNV + inserted new PP type)
      DONE PW/wfcinit.f90                 (RNV)
      
      the hard ones:
      DONE PW/electrons.f90   (adapted code to new syntaxes, a lot of cleanup, removed
                               some PAW junk that can be readded later, removed parts
                               that were applyed twice, or had been removed in trunk,
                               the rhog allocations and usage may need fixes)
      DONE PW/mix_rho.f90     (merged tauk and paw additions, a bit of cleanup and smarter
                               variables names)
      DONE PW/init_us_1.f90   (qtot redefined with "triangular" index nb,mb-->ijv)
      
      modified for compiling:
      Modules/io_files.f90    (depatched)
      PW/pwcom.f90            (depatched)
      Modules/parameters.f90  (temporary readded cp_lmax = lmaxx+1)
      PW/newd.f90             (merge was wrong, redone mostly by hand)
      PW/read_ncpp.f90        (depatched)
      PW/read_pseudo          (small fixes)
      PW/sgam_at_mag.f90      (depatched)
      PW/sgama.f90            (depatched)
      PW/stres_gradcorr.f90   (depatched)
      
      modified for running:
      PW/clean_pw.f90         (added call to deallocate_paw_internals)
      
      Modifications to PAW routines:
      1. compute_onecenter_charges and compute_onecenter_charges modified to
         comply with new structure of v_xc (in v_of_rho.f90), requiring new
         g-space densities to be saved and computed --> using old xc routines
         as this code will be removed.
      2. qrad size has changed, prad and ptrad had to be changed accordingly.
      3. several minor modifications to use new radial grid structure.
      4. infomsg arguments changed, very funny bug followed.
      5. added new routine deallocate_paw_internals, called by PW/clean_pw.f90
         required to run pp.x with more than one q-point(and good programming
         practice)
      
      
          *************************
          *** merge of LD1 code ***
          *************************
      2nd try: atomic code replaced with current version, then merge by hand
      the files that are used by paw subsystem:
      * atomic_paw.f90        (replaced with most recent version from develop_PAW
                               routine us2paw and paw2us taken from newer trunk
                               version, a lot of minor changes.)
      * gener_pseudo.f90      (fixes)
      * ld1inc.f90            (PAW variables added)
      * ld1_readin.f90        (PAW variables added, I am not sure if lpaw should go
                               in input or inputp namelist)
      * ld1_writeout.f90      (it was only necessary to add a few lines)
      * pseudovloc.f90        (nothing to do)
      * run_pseudo.f90        (almost nothing to do)
      * set_rho_core.f90      (readded a few lines for lnc2paw)
      * write_paw_recon.f90   (nothing to do)
      * write_resultsps.f90   (nothing to do: trunk version is more
                               PAW-aware than PAW version)
      
      Main problems were found in subroutines run_pseudo and gen_pseudo,
      a little code had to be rewritten to comply with new variable names
      and fix with merge.
      
      TODO: fix atomic_paw routines to use minimal allocated arrays insetad
      of ndmx sized ones; try to use the pawet as much as possible. Remove
      test lines and other garbage. Find a fix for PAW2.
      
      The first week of september Andrea Dal Corso uploaded a few modifications to
      the atomic_paw routines. I had to rollback them as the structure of atomic_paw
      has changed a lot and reimplementing them is probably easier and definitely
      safer than fixing everything. I will do it soon, I swear!
      
      LP
      
      
      git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4257 c92efa57-630b-4861-b058-cf58834340f0
      08fedbe2
  16. 26 Jun, 2007 1 commit
  17. 11 Jun, 2007 1 commit
  18. 14 Dec, 2006 1 commit
    • giannozz's avatar
      More patches from Axel: · 3a98e2d9
      giannozz authored
      - 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
      3a98e2d9
  19. 27 Nov, 2006 1 commit
  20. 11 Aug, 2006 1 commit
    • cavazzon's avatar
      - more subroutines taken out from modules · 7601c0b6
      cavazzon authored
      - 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
      7601c0b6
  21. 23 Jun, 2006 1 commit
  22. 16 Jun, 2006 1 commit
  23. 01 Jun, 2006 1 commit
  24. 07 Apr, 2006 1 commit
  25. 16 Feb, 2006 1 commit
  26. 10 Jan, 2006 1 commit
    • cavazzon's avatar
      - FPMD/CP ortho subroutines merged as much as possible. · 1a6b00bb
      cavazzon authored
      - 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
      1a6b00bb
  27. 02 Jan, 2006 1 commit
  28. 01 Jan, 2006 1 commit
  29. 31 Dec, 2005 1 commit
  30. 13 Dec, 2005 1 commit
  31. 12 Dec, 2005 2 commits
  32. 11 Dec, 2005 1 commit
  33. 09 Nov, 2005 1 commit
  34. 08 Nov, 2005 1 commit
  35. 28 Aug, 2005 1 commit
  36. 26 Aug, 2005 1 commit
    • giannozz's avatar
      General cleanup of intrinsic functions: · bf4bfe22
      giannozz authored
      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
      bf4bfe22
  37. 23 Aug, 2005 1 commit
  38. 22 Aug, 2005 1 commit
    • cavazzon's avatar
      - FPMD: pseudopotential variable wsg, wnl, fnl substituted with · 26082843
      cavazzon authored
        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
      26082843
  39. 17 Aug, 2005 1 commit